C#在运行时绑定事件时将附加参数传递给事件处理程序

foo*_*aar 15 c# asp.net parameters methods arguments

我有一个链接按钮,它有一个常规的点击事件:

protected void lnkSynEvent_Click(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)

我在运行时绑定此事件:

lnkSynEvent.Click += new EventHandler(lnkSynEvent_Click);
Run Code Online (Sandbox Code Playgroud)

现在我需要函数来接受额外的参数:

protected void lnkSynEvent_Click(object sender, EventArgs e, DataTable dataT)
{
}
Run Code Online (Sandbox Code Playgroud)

并在绑定此事件时传递相同的参数:

lnkSynEvent.Click += new EventHandler(lnkSynEvent_Click, //somehow here);
Run Code Online (Sandbox Code Playgroud)

不知道如何实现这一目标.请帮忙.

提前致谢.

维沙尔

ale*_*lex 44

您可以使用匿名委托:

lnkSynEvent.Click += 
         new EventHandler((s,e)=>lnkSynEvent_Click(s, e, your_parameter));
Run Code Online (Sandbox Code Playgroud)

  • 亚历克斯,我们怎样才能删除它?只需使用 `lnkSynEvent.Click -=new EventHandler( ...` ? (2认同)

Era*_*cht 5

我不知道它什么时候改变,但现在更容易了!

lnkSynEvent.Click += (s,e) => lnkSynEvent_Click(s, e, your_parameter);
Run Code Online (Sandbox Code Playgroud)