Похоже, вы запутались между самими событиями и параметрами EventArgs, которые передаются вашему фактическому обработчику событий.
Когда вы регистрируетесь для обработки события, у вас есть пара вещейзнать.Я буду использовать ваше событие ColumnChanged
в качестве примера.
Во-первых, событие, на которое вы регистрируетесь, это событие ColumnChanged
(кажется прямым, но я включил его для ясности).
Во-вторых, для регистрации события вам необходим обработчик события.Этот обработчик события должен соответствовать подписи делегата, предоставленной событием.В случае ColumnChanged делегат должен принимать два параметра: 1) объект с именем отправителя и 2) объект, используемый для передачи аргументов, специфичных для события, с именем DataColumnChangedEventArgs
.Ваш метод должен выглядеть примерно так:
public void ColumnChangedHandler(object sender, DataColumnChangedEventArgs e)
{
// Do some work here when the event is fired
}
После того, как вы это сделаете, последним шагом будет регистрация вашего обработчика для обработки события:
someDataTable.ColumnChanged +=
new DataColumnChangeEventHandler(ColumnChangedHandler);
Теперь, если вы посмотрите вокруг себяВероятно, вы заметите, что некоторые люди используют синтаксис ярлыков для создания обработчика всего за один шаг:
someDataTable.ColumnChanged += (object sender, DataColumnChangedEventArgs e)
{
// Do some work here when the event is fired
}
Это позволит вам создать анонимный метод для обработки события, но может вызвать проблемы, когда придет времяочистить объект и отменить регистрацию любых обработчиков.