ListBox는 여러개의 객체를 보여주는 Element이다.

그리고 ListBox에 특정 DataTemplate을 ItemTemplate으로 지정하면 원하는 형태로

데이타를 보여줄수 있다.

여기에 객체 리스트를 ItemsSource로 주면 바인딩을 할수 있다.

객체리스르의 변화를 ListBox에 반영하고 싶다면

객체리스트는 INotifyCollectionChanged인터페이스가 구현되어 있는

ObservableCollection<T>을 사용하면 된다.

이때 바인딩의 의미란 Collection 의 변화에 대해서 ListBox에 반영한다는 의미이다.

즉, Collection의 아이템이 추가 되었는지 혹은 삭제 되었는지를 반영하게 되는

Collection과 ListBox와의 바인딩이다.

그러므로 Collection의 한 객체의 내용이 변한 것은 Collection 입장에서는 변화가 없는 것이므로

ListBox의 한 객체에 대한 변경사항이 UI이 반영되지 않는다.

Collection의 한 객체변경사항이 ListBox에 반영되게 하려면

CollectionChanged Event 핸들러에서 혹은 Collection의 한 객체내용을 변경한 다음에

ListBox_Name.Items.Refresh()를 호출하게 되면 개별객체의 변경사항이 UI이 반영되게 된다.

이 글은 스프링노트에서 작성되었습니다.

by 무위자연 2008. 12. 4. 11:43