是否可以将事件处理程序直接放到函数中

时间:2016-03-03 13:06:48

标签: c# wpf events delegates

我有一个wpf c#app。

我在用户控件中声明了一个事件,我的用户控件已经加载到我的主窗口中。

在我的代码{适当的地方)我将事件处理程序定义为如下函数:

    MyUserControl.MyEvent += Myfunction;

...

void Myfunction(object someData)
{
   //do something
}

为了让事情“更清洁”,我想做一些类似的事情:

MyUserControl.MyEvent +=> Myfunction(someData);
显然,这不会编译,但我把它放在试图说明我想要的东西......

1 个答案:

答案 0 :(得分:3)

我认为你正在尝试为你的活动创建一个lambda

MyUserControl.MyEvent += (object o) => Myfunction(someData);

诀窍是它必须匹配事件的委托签名,在您的情况下,这将是一个采用object并且不返回任何内容的方法。请注意,通过这样做,您忽略了事件发送的object