我有一个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
答案 0 :(得分:9)
您的用户类型需要实施INotifyPropertyChanged
。
答案 1 :(得分:0)
我能想到的唯一方法是在User类中定义一个事件,当一个属性值发生变化时会触发该事件(你必须为此手动编写代码)。然后创建一个包装类的绑定列表。处理该类中的列表事件和用户类事件。
如果你喜欢这个想法,我可以详细说明......