2010-01-19 11 views
9

Estoy tratando de usar un ListBox.DataSource = ObservableCollection, sin embargo, no puedo entender cómo hacer que el listbox se actualice automáticamente cuando actualice mi OC. Puedo enganchar el evento CollectionChanged en el OC, sin embargo, ¿qué debo hacer en el cuadro de lista para actualizarlo?C# ListBox ObservableCollection <T>

+0

WinForms or WPF? – McAden

+0

WinForms, pero incluí el ensamblado WindowsBase que contiene ObserveableCollection. ¿No es esta la manera correcta de hacerlo? – WedTM

+0

Winforms es notificado por IBindingList como Justin Niessner lo ha descrito a continuación. – McAden

Respuesta

17

Según su pregunta, parece que está intentando usar ObservableCollection<T> en una aplicación WinForms.

ObservableCollection<T> se usa principalmente en el desarrollo de WPF. En WinForms, para que el control se actualice automáticamente a medida que la colección cambia, su colección necesita implementar IBindingList.

La solución más fácil es usar BindingList<T> en lugar de ObservableCollection<T>. Después de eso, tus controles deberían actualizarse a medida que cambia la colección.

MSDN: BindingList(T) Class

+0

Perfecto, ¡eso es lo que estaba buscando! – WedTM

+0

O espere a que aparezca .NET 4.0; 'ObservableCollection ' se moverá a 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 (ver el último artículo) –

Cuestiones relacionadas