2010-06-23 72 views
1

我有一个派生的DataGridView绑定到BindingList,并且该对象实现iNotifyPropertyChanged。DataGridView绑定iNotifyPropertyChanged对象问题

我想做以下事情:当我的属性附加到我的DataGridView被更改,我想调用一个函数,将更新我的列之一的标题。

基本上,我想将我自己的响应添加到PropertyChanged事件中。不幸的是,我无法找到hook \ handle的位置,以便事件自己订阅它。

在此先感谢!

编辑:
我采取的解决方案是前两个答案之间的混合。我最终订阅了ListAdded \ Changed事件,并且能够从那里获得足够的上下文来更新我所有的函数。

回答

1

您应该重写以下方法: OnDataMemberChanged http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.ondatamemberchanged.aspx OnDataSourceChanged http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.ondatasourcechanged.aspx

里面这些方法,你应该使用ListBindingHelper类http://msdn.microsoft.com/en-us/library/system.windows.forms.listbindinghelper.aspx和他的GetList方法来获取表示绑定到DataGridView的列表实际的对象。您应该尝试将其转换为IBindingList,并且如果您使用.NET FW 3.5或更高版本,则转到INotifyCollectionChanged接口,并订阅相应的事件。

+0

Workin in .net 2.0 ...我会看看我能得到多远,并检查是否可以从那里抓取它们。 我不一定需要弄清楚什么属性发生了变化,只要我能确定某些属性发生了变化。如果ListChanged每次被触发,它就会执行。 – greggorob64 2010-06-23 19:35:15

1

我想你想要处理BindingSource.CurrentItemChanged事件。