Sar*_*els 5 c# wpf user-controls event-handling statusbar
StatusBar我的主窗口中有一个,我的主窗口中也有一个副本UserControl.从我的事件处理程序中UserControl,我想StatusBar在主窗口中更新.这样做的最佳方式是什么?有没有办法从事件处理程序中object sender或RoutedEventArgs e在事件处理程序中访问我的主窗口的实例UserControl?
编辑: 感谢lukas的回答和本教程,我提出了以下解决方案:
添加到我的UserControl:
public delegate void UpdateStatusBarEventHandler(string message);
public event UpdateStatusBarEventHandler UpdateStatusBar;
Run Code Online (Sandbox Code Playgroud)
添加到我的主窗口的构造函数之后InitializeComponent:
uct_requiredFields.UpdateStatusBar += updateStatusBar;
Run Code Online (Sandbox Code Playgroud)
我将此方法添加到我的主窗口:
private void updateStatusBar(string message)
{
sti_mainStatus.Content = message;
}
Run Code Online (Sandbox Code Playgroud)
然后,从我的内部UserControl,我可以执行以下操作来更新状态栏:
if (null != UpdateStatusBar)
{
UpdateStatusBar("woot, message");
}
Run Code Online (Sandbox Code Playgroud)
我会通过自己的委托或定义向UserControl添加一个事件
public event UpdateStatusBar UpdateBar;
Run Code Online (Sandbox Code Playgroud)
然后通过按钮单击UserControl(或您使用的其他东西)来升级它
private void UserContolButton_Click(object sender, RoutedEventArgs e)
{
if(UpdateBar != null)
UpdateBar(); // send here the message
}
Run Code Online (Sandbox Code Playgroud)
我假设你在构造函数的主窗口中有一个UserControl实例
myUserControl.UpdateBar += MyMethodWhichUpdatesStatusBar();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3252 次 |
| 最近记录: |