2009-09-10 4 views
5

를 작동하도록 XAML 파일의 관련 부분은 가져올 수 없습니다.은 목록 상자와 UpdateTarget 여기

특정 시점에 항목을 사전에 추가하고 ListBox에 변경 내용을 반영하고 싶습니다.
이것은 내가 사용하는 방법에 대한 생각 코드이지만 작동하지 않습니다

BindingExpression binding; 
binding = myList.GetBindingExpression(ListBox.ItemsSourceProperty); 
binding.UpdateTarget(); 

이 코드는 대신 작동합니다

myList.ItemsSource = null; 
myList.ItemsSource = MyClass.dic.Keys; 

내가 UpdateTarget를 사용하는 것을 선호하지만, 나는 그것을 얻을 수 없다 일하다.
내가 뭘 잘못하고 있니?

답변

11

항목 바인딩은 WPF에서 DependencyPropertys의 표준 바인딩 (특히 ItemsControl 초)과 다르게 처리됩니다. 그것은 당신이 새로 고침 할 ICollectionView 객체가 실제로

var itemsView = CollectionViewSource.GetDefaultView(myListBox.ItemsSource); 
itemsView.Refresh() 

입니다 :

난 당신이 다음과 같은 일을 할 생각합니다. 이것은 효과적으로 컬렉션 바인딩을 관리하는 객체입니다. 자세한 내용은 the MSDN page을 참조하십시오.

+0

감사합니다. 완벽하게 작동했습니다. – RobSullivan