Ho un StatusBar
nella mia finestra principale, e ho anche una copia di un UserControl
nella mia finestra principale. Dall'interno dei gestori di eventi nel mio UserControl
, voglio aggiornare lo StatusBar
nella finestra principale. Quale sarebbe il modo migliore per farlo? C'è un modo per accedere all'istanza della mia finestra principale da object sender
o RoutedEventArgs e
in un gestore di eventi in UserControl
?WPF, aggiornamento barra di stato nella finestra principale da UserControl
Edit: grazie a lukas's answer e this tutorial, mi si avvicinò con la seguente soluzione:
aggiunto ai UserControl
:
public delegate void UpdateStatusBarEventHandler(string message);
public event UpdateStatusBarEventHandler UpdateStatusBar;
aggiunta al costruttore della mia finestra principale, dopo InitializeComponent
:
uct_requiredFields.UpdateStatusBar += updateStatusBar;
E ho aggiunto questo metodo alla mia finestra principale:
private void updateStatusBar(string message)
{
sti_mainStatus.Content = message;
}
Poi, da dentro il mio UserControl
, posso effettuare le seguenti operazioni per aggiornare la barra di stato:
if (null != UpdateStatusBar)
{
UpdateStatusBar("woot, message");
}