2010-01-19 14 views
9

ListBox.DataSource = ObservableCollection kullanmaya çalışıyorum, ancak OC güncelleştirmelerim olduğunda liste kutusunun nasıl otomatik olarak güncelleneceğini anlayamıyorum. KoleksiyonChanged olayını OC'ye bağlayabilirim, ancak güncelleme yapmak için liste kutusuna ne yapmam gerekiyor?C# ListBox GözlemlenebilirKoleksiyon <T>

+0

WinForms veya WPF? – McAden

+0

WinForms, ancak ObserveableCollection içeren WindowsBase derlemesini dahil ettik. Bunu yapmanın doğru yolu bu değil mi? – WedTM

+0

Winforms, Justin Niessner'ın aşağıda açıkladığı gibi IBindingList tarafından bildirilir. – McAden

cevap

17

Sorunuza bağlı olarak, bir WinForms uygulamasında ObservableCollection<T> kullanmaya çalıştığınız anlaşılıyor. WPF geliştirilmesinde öncelikli olarak kullanılan

ObservableCollection<T>. WinForms uygulamasında, koleksiyonunuzun koleksiyonunuzda IBindingList'u uygulamasının gerektirdiği değişiklikler otomatik olarak güncellenir.

En kolay çözüm, ObservableCollection<T> yerine BindingList<T> kullanmaktır. Bundan sonra, koleksiyonunuz değiştikçe kontrolleriniz güncellenmelidir.

MSDN: BindingList(T) Class

+0

Mükemmel, aradığım şey bu! – WedTM

+0

Veya .NET 4.0'ın çıkmasını bekleyin; ObservableCollection 'System.dll dosyasına taşınacaktır: http://blogs.msdn.com/bclteam/archive/2009/10/21/what-s-new-in-the-bcl-in-net-4- beta-2-justin-van-patten.aspx (son öğeye bakın) –