Событие DataGridView перед изменениями источника данных - PullRequest
3 голосов
/ 24 января 2011

Могу ли я вызвать событие DataSourceChanging в DataGridView.DataGridView имеет DataSourceChanged событие, которое (я считаю) после того, как DataSource привязан к DataGridView.Я хочу кое-что сделать до того, как свойство будет изменено.

Пример моего кода ...

private void LoadGrid()
{
    //  I do some things like saving user settings here
    DtgRefundAssign.DataSource = BLL.GetDataSource(parameter1, parameter2); //Just to illustrate
    //  And restore them after the datasource is bound

}

Мне нужно делать подобные вещи во многих формах.Просто подумайте о разработке общей процедуры, которая делает это всякий раз, когда изменяется источник данных.Восстановить часть можно с помощью события DataSourceChanged ... Но какое событие мне нужно обработать, чтобы выполнить сохранение?

Ответы [ 2 ]

5 голосов
/ 24 января 2011

Я сам этого не делал, но DataGridView не запечатан, поэтому вы должны иметь возможность создать новый класс, который наследуется от него. Создайте новое событие «DataSourceChanging», затем переопределите установщик свойства DataSource, чтобы оно сначала вызывало это событие, , а затем фактически устанавливает свойство родительского класса.

Затем вы просто используете это представление таблицы данных вместо представления по умолчанию и подключаете логику сохранения к DataSourceChanging.

2 голосов
/ 12 мая 2011

Вы можете создать свойство shadows / new в подклассе, используя ключевые слова new / shadows, в зависимости от того, используете ли вы c # или vb.net, поскольку вы не можете переопределить его.Используйте вызовы base.DataSource в подклассе для доступа к свойству базового класса и используйте this.DataSource в подклассе для доступа к новому свойству DataSource.: D

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