【问题标题】:BindingList.ListChanged Event not Raised when Property Changes属性更改时未引发 BindingList.ListChanged 事件
【发布时间】:2009-05-07 15:30:25
【问题描述】:

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

【问题讨论】:

  • 我会要求您重新提出您的问题。这两个有问题的词并不能说明您要解决的问题。

标签: c# bindinglist


【解决方案1】:

您的用户类型需要实现INotifyPropertyChanged

【讨论】:

  • 漂亮!这完成了这项工作。非常感谢!
  • 如果类型不打算实现 INotifyPropertyChanged 有没有办法在代码中引发 ListChangedEvent? (以便绑定的 UI 元素可以响应它)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-06
    • 2011-02-08
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多