属性更改时未引发BindingList.ListChanged事件

时间:2009-05-07 15:30:26

标签: c# bindinglist

我有一个User类型的BindingList,User对象有几个属性(UserName,Password等)。所以我将一个事件处理程序绑定到BindingList.ListChanged事件,它在添加或删除用户时工作正常,但是,如果用户属性发生更改,它不会引发事件,是否有任何方法可以实现此目的?

bindingListUsers.Add(someUser); // This raises ListChangedEvent

bindingListUsers.Delete(someUser); // This raises ListChangedEvent

bindingListUsers[0].UserName = "Another user name"; // This does NOT raise the event

2 个答案:

答案 0 :(得分:9)

您的用户类型需要实施INotifyPropertyChanged

答案 1 :(得分:0)

我能想到的唯一方法是在User类中定义一个事件,当一个属性值发生变化时会触发该事件(你必须为此手动编写代码)。然后创建一个包装类的绑定列表。处理该类中的列表事件和用户类事件。

如果你喜欢这个想法,我可以详细说明......