我的主窗口中有一个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;
}
然后,在 myUserControl
中,我可以执行以下操作来更新状态栏:
if (null != UpdateStatusBar)
{
UpdateStatusBar("woot, message");
}