Mam główne okno w postaci StatusBar
, a także mam kopię pliku UserControl
w moim głównym oknie. Z poziomu programów obsługi zdarzeń w moim UserControl
, chcę zaktualizować StatusBar
w głównym oknie. Jaki byłby najlepszy sposób na zrobienie tego? Czy istnieje sposób uzyskania dostępu do instancji mojego głównego okna z object sender
lub RoutedEventArgs e
w procedurze obsługi zdarzeń w UserControl
?WPF, aktualizowanie paska stanu w oknie głównym z poziomu UserControl
Edit: dzięki lukas's answer i this tutorial, wymyśliłem następujące rozwiązanie:
Dodane do moich UserControl
:
public delegate void UpdateStatusBarEventHandler(string message);
public event UpdateStatusBarEventHandler UpdateStatusBar;
Dodano do konstruktora mojego głównego okna, po InitializeComponent
:
uct_requiredFields.UpdateStatusBar += updateStatusBar;
I dodałem tę metodę moim głównym oknie:
private void updateStatusBar(string message)
{
sti_mainStatus.Content = message;
}
Następnie od wewnątrz moich UserControl
mogę wykonać następujące czynności, aby zaktualizować pasek stanu:
if (null != UpdateStatusBar)
{
UpdateStatusBar("woot, message");
}