У меня есть StatusBar
в моем главном окне, и у меня также есть копия UserControl
в моем главном окне. Внутри обработчиков событий в моем UserControl
я хочу обновить StatusBar
в главном окне. Какой был бы лучший способ сделать это? Есть ли способ получить доступ к экземпляру моего главного окна от object sender
или RoutedEventArgs e
в обработчике событий в UserControl
?WPF, обновление строки состояния в главном окне изнутри UserControl
Edit: благодаря lukas's answer и this tutorial, я придумал следующее решение:
Добавлено в мой UserControl
:
public delegate void UpdateStatusBarEventHandler(string message);
public event UpdateStatusBarEventHandler UpdateStatusBar;
Добавлено конструктору моего главного окна, после InitializeComponent
:
uct_requiredFields.UpdateStatusBar += updateStatusBar;
И я добавил этот метод к моему главному окну:
private void updateStatusBar(string message)
{
sti_mainStatus.Content = message;
}
Тогда из моей UserControl
, я могу сделать следующее, чтобы обновить строку состояния:
if (null != UpdateStatusBar)
{
UpdateStatusBar("woot, message");
}