ищите объяснение событий .NET DataTable и обработки - PullRequest
0 голосов
/ 07 июня 2011

У меня проблемы с нахождением .NET DataTable событий, обработкой, действиями и т. Д.

Я пытался понять из библиотеки MSDN, но обнаружил, что не понимаюкак все это работает вместе.Я также не смог найти какой-либо другой источник (путем поиска в Google), который объясняет все входы и выходы этого.

Например, я пытаюсь понять, что есть DataTable события (например, ColumnChanged, RowChanged и т. Д.), Но есть также DataRowColumnChangeEventArgs, DataColumnChangeEventArgs и т. Д.Как они связаны / работают вместе?

Может ли кто-нибудь предоставить ссылку, которая дает подробное объяснение DataTable событий и обработки?(Или предоставьте его себе, если у вас есть такое время!)*

1 Ответ

1 голос
/ 07 июня 2011

Похоже, вы запутались между самими событиями и параметрами 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
    }

Это позволит вам создать анонимный метод для обработки события, но может вызвать проблемы, когда придет времяочистить объект и отменить регистрацию любых обработчиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...