在UserControl中引发一个事件,并在主窗口中侦听该事件



我有一个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;

相关内容

  • 没有找到相关文章

最新更新