2010-01-19 25 views
9

Tôi đang cố sử dụng ListBox.DataSource = ObservableCollection, tuy nhiên tôi không thể tìm ra cách để hộp danh sách tự động cập nhật khi cập nhật OC của tôi. Tôi có thể móc các sự kiện CollectionChanged trên OC, tuy nhiên những gì tôi cần phải làm gì để hộp danh sách để làm cho nó cập nhật?C# ListBox ObservableCollection <T>

+0

WinForms hoặc WPF? – McAden

+0

WinForms, nhưng tôi đã bao gồm hội đồng WindowsBase chứa ObserveableCollection. Đây không phải là cách đúng để làm điều đó? – WedTM

+0

Winforms được thông báo bởi IBindingList như Justin Niessner đã mô tả dưới đây. – McAden

Trả lời

17

Dựa trên câu hỏi của bạn, có vẻ như bạn đang cố gắng sử dụng ObservableCollection<T> trong ứng dụng WinForms.

ObservableCollection<T> chủ yếu được sử dụng trong phát triển WPF. Trong WinForms, để điều khiển được tự động cập nhật khi bộ sưu tập thay đổi bộ sưu tập của bạn cần phải triển khai IBindingList.

Giải pháp dễ nhất là sử dụng BindingList<T> thay vì ObservableCollection<T>. Sau đó, các điều khiển của bạn sẽ cập nhật khi thay đổi bộ sưu tập.

MSDN: BindingList(T) Class

+0

Tuyệt vời, đó là những gì tôi đang tìm kiếm! – WedTM

+0

Hoặc đợi .NET 4.0 xuất hiện; 'ObservableCollection ' sẽ được chuyển đến 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 (xem mục cuối cùng) –

Các vấn đề liên quan