我有一个UserControl a.
在代码隐藏文件中,我想引发一个特定的事件(由我创建)。
现在我希望主窗口(包含用户控件)正在侦听该事件。
在WindowsForms中,我使用了这种方式:
namespace MyProgramm
{
public partial class MyClass
{
public MyClass()
{
InitializeComponent();
DataContext = this;
}
internal event MyEventHandler MyEvent;
private void RaiseMyEvent()
{
if (MyEvent!= null)
{
MyEvent(this, ...);
}
}
public string Name { get; set; }
}
internal delegate void MyEventHandler (MyClass sender, ...);
}
我如何在WPF中以一种好的方式解决这个问题?
在我看来,最好使用EventHandler,而不是您自己的委托类型。
此外,如果类是公共的并且具有公共构造函数,则可以将MyEvent
设为公共的。
public event EventHandler<MyEventArgs> MyEvent;