有没有我可以在DataGridView中触发 DataSourceChanging 事件。 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事件来完成......但是我应该处理哪个事件来执行保存部分?
答案 0 :(得分:5)
我自己没有这样做,但DataGridView没有密封,所以你应该能够创建一个继承它的新类。创建一个新事件“DataSourceChanging”,然后覆盖DataSource属性的Setter,以便它首先引发该事件,然后实际设置父类的属性。
然后,您只需使用datagridview代替默认值,并将保存逻辑连接到DataSourceChanging。
答案 1 :(得分:2)
您可以使用new / shadows关键字在子类中创建阴影/新属性,具体取决于您是使用c#还是vb.net,因为您无法覆盖它。在子类中使用base.DataSource调用来访问基类的属性,并在子类中使用this.DataSource来访问新的DataSource属性。 :d