С# передает дополнительный параметр обработчику события при привязке события во время выполнения

У меня есть кнопка ссылки, которая имеет регулярное событие click:

protected void lnkSynEvent_Click(object sender, EventArgs e)
{
}

И я привязываю это событие во время выполнения:

lnkSynEvent.Click += new EventHandler(lnkSynEvent_Click);

Теперь мне нужна функция для принятия дополнительного аргумента:

protected void lnkSynEvent_Click(object sender, EventArgs e, DataTable dataT)
{
}

И передайте то же самое, что и параметр, привязывая это событие:

lnkSynEvent.Click += new EventHandler(lnkSynEvent_Click, //somehow here);

Не знаю, как этого добиться. Пожалуйста, помогите.

Спасибо заранее.

Вишал

Ответ 1

Для этого можно использовать анонимный делегат:

lnkSynEvent.Click += 
         new EventHandler((s,e)=>lnkSynEvent_Click(s, e, your_parameter));

Ответ 2

с помощью делегата:

lnkbtnDel.Click += delegate(object s, EventArgs e1) { 
                 Dynamic_Click(s, e1, lnkbtnDel.ID); 
               };`  

Ответ 3

Я не знаю точно, когда он изменился, но теперь это еще проще!

lnkSynEvent.Click += (s,e) => lnkSynEvent_Click(s, e, your_parameter);

Ответ 4

EventHandler myEvent = (sender, e) => MyMethod(myParameter);//my delegate

myButton.Click += myEvent;//suscribe
myButton.Click -= myEvent;//unsuscribe

private void MyMethod(MyParameterType myParameter)
{
 //Do something
}