【发布时间】:2014-08-07 09:07:33
【问题描述】:
我已经阅读了很多文章来解决这个问题,但我无法让它工作。
情况: 我有一个 WPF MainWindow,我将 UserControls 加载到其中。 主窗口应该监听一个名为 Navigation 的类中的 EventHandler。该事件将在用户控件中的某些更改时触发。
到目前为止,我可以确认 UserControls 可以触发事件,但 MainWindow 没有拾取 Throw。
导航类:
public class Navigation
{
public delegate void EventHandler(object sender, EventArgs args);
public event EventHandler ThrowEvent = delegate { };
public void NavigationUpdateEvent()
{
ThrowEvent(this, new EventArgs());
}
}
用户控制:
public delegate void EventHandler(object sender, EventArgs args);
public event EventHandler ThrowEvent = delegate { };
Navigation myNavigation = new Navigation();
public myUserControl()
{
InitializeComponent();
}
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
if (cbCheckBox.IsChecked.Value)
{
UMENavigation.NavigationUpdateEvent();
}
}
主窗口:
private void DoSomething()
{
MessageBox.Show("It worked!");
}
private Navigation _Thrower;
public MainWindow()
{
InitializeComponent();
_Thrower = new Navigation();
_Thrower.ThrowEvent += (sender, args) => { DoSomething(); };
}
但是,_Thrower 永远不会收到 Fired Event..
非常感谢任何帮助!这开始受伤了:)
你好,汤姆
【问题讨论】:
-
明智地命名它应该被称为 RaiseEvent 而不是 ThrowEvent
标签: c# wpf mainwindow eventhandler