У меня есть StatusBar
в моем главном окне, и у меня также есть копия UserControl
в моем главном окне.Из обработчиков событий в моем UserControl
я хочу обновить StatusBar
в главном окне.Что было бы лучшим способом сделать это?Есть ли способ получить доступ к экземпляру моего главного окна из object sender
или RoutedEventArgs e
в обработчике событий в UserControl
?
Редактировать: благодаря В ответе Лукаса и на этот урок я нашел следующее решение:
Добавлено в мои 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");
}