У меня есть StatusBar
в моем главном окне, и у меня также есть копия UserControl
в моем главном окне. Из обработчиков событий в моем UserControl
я хочу обновить StatusBar
в главном окне. Каков будет лучший способ сделать это? Есть ли способ получить доступ к экземпляру моего главного окна от отправителя объекта
или 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");
}