【发布时间】:2011-03-28 11:51:56
【问题描述】:
我的主窗口中有一个StatusBar,我的主窗口中也有一个UserControl 的副本。在我的UserControl 的事件处理程序中,我想更新主窗口中的StatusBar。这样做的最佳方法是什么?有没有办法在UserControl 的事件处理程序中从object sender 或RoutedEventArgs e 访问我的主窗口实例?
编辑:感谢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");
}
【问题讨论】:
标签: c# wpf user-controls event-handling statusbar