当属性更改时,BindingList.ListChanged事件未被触发。

5

我有一个类型为User的BindingList,User对象有几个属性(用户名、密码等)。所以我将一个事件处理程序绑定到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

我想要请你重新构思你的问题。问题中的这两个词并没有提供关于你正在尝试解决的问题的足够信息。 - Hemant
2个回答

10

您的用户类型需要实现 INotifyPropertyChanged 接口。


太棒了!这个完成了任务。非常感谢你! - Carlo
如果类型不会实现INotifyPropertyChanged接口,那么有没有一种方法在代码中触发ListChangedEvent事件?(以便绑定的UI元素可以响应它) - Paul McCarthy

0
我能想到的唯一方法是在User类中定义一个事件,当属性值改变时触发该事件(您必须手动编写代码)。然后创建一个绑定列表的包装器类。在该类中处理列表事件和用户类事件。
如果您喜欢这个想法,我可以详细解释...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接