IBindingList更改通知

时间:2011-10-25 15:16:05

标签: c# bindinglist

我正在尝试创建一个程序(简单的网格 - 具有专门的输出),它显示来自IBindingList数据源的数据。我可以很好地显示数据,但我也希望能够让用户编辑数据,例如在与网格分开的TextBox中。我的问题是我不清楚如何完成两个元素(我的网格和可编辑文本框)之间的数据“自动”更新。

我相信列表的ListChanged事件会告诉我列表本身何时发生了变化,但是我需要网格知道列表中的实际数据何时发生了变化。我唯一偶然发现,当网格外部发生变化时,它会挂钩到BindingManagerBase.Bindings [0] .Parse事件。不是用户会这样做,但如果用户已经建立了几个绑定到同一字段的文本框,我想我必须遍历每个BindingManagerBase.Binding条目并挂钩它?

我认为我没有正确地做到这一点,并且有一种更通用的方法来实现这一目标。我非常感谢任何更熟悉我想要完成的事情的人的指导。

提前致谢, -Matt

2 个答案:

答案 0 :(得分:1)

看看INotifyPropertyChanged。在存储在BindingList中的类上实现它,以便在项目属性发生更改时通知所述BindingList。

如果你自己实现了IBindingList,你需要做更多的工作来连接列表中每个项目的事件,但是提供的BindingList会自动获取这些事件。

答案 1 :(得分:1)

您还可以使用通用BindingList并使用ResetItem

通知编辑