C# ListBox ObservableCollection<T>

11

我正在尝试使用 ListBox.DataSource = ObservableCollection,但是我无法弄清楚如何使列表框在我的 OC 更新时自动更新。 我可以在 OC 上挂接 CollectionChanged 事件,但是我需要对列表框做什么才能使其更新?

我试图使用 ListBox.DataSource = ObservableCollection,然而我无法找出如何使列表框在我的ObservableCollection更新时自动更新。我可以挂接OC上的CollectionChanged事件,但我需要对ListBox进行哪些操作才能使其更新?

WinForms,但我包含了包含ObserveableCollection的WindowsBase程序集。这不是正确的方法吗? - WedTM
Winforms会像Justin Niessner所描述的那样被IBindingList通知。 - McAden
1个回答

21
根据您的问题,似乎您正在尝试在WinForms应用程序中使用ObservableCollection<T>ObservableCollection<T>主要用于WPF开发。在WinForms中,为了使控件在集合更改时自动更新,您的集合需要实现IBindingList接口。
最简单的解决方案是使用BindingList<T>代替ObservableCollection<T>。然后,您的控件应该在集合更改时更新。 MSDN: BindingList(T) Class

完美,这正是我正在寻找的! - WedTM
或者等待.NET 4.0发布;ObservableCollection<T>将被移动到System.dll中:http://blogs.msdn.com/bclteam/archive/2009/10/21/what-s-new-in-the-bcl-in-net-4-beta-2-justin-van-patten.aspx(请参见最后一项) - Ryan Lundy

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