2012-04-30 4 views
0

내가 뷰 모델에 ObservableCollection에 정의가 좋아 : 그런 다음이 목록 상자에 대한 복수 선택이 가능INotifyCollectionChanged/ObservableCollection 코드에서 CollectionChanged 이벤트를 발생시키는 방법?

<i:Interaction.Behaviors> 
    <My:ListBoxSelectedItemsBehavior SelectedItems="{Binding MyList, Mode=TwoWay}" /> 
</i:Interaction.Behaviors> 

:

//private ObservableCollection<MyObject> _myList; 
public ObservableCollection<MyObject> MyList {get;set;} 

그런 다음 내가 좋아하는 행동 목록 상자에 대한 selectedItems를에 바인딩하려고합니다. 사용자가 마우스와 상호 작용하여 둘 이상의 항목을 선택하면 괜찮습니다.

질문 : 처음에는 데이터베이스에 저장된 항목 데이터가 선택되었습니다. 데이터베이스에서 데이터를 검색 할 때 CollectionChanged를 실행하고 해당 selectedItem을 UI에서 선택한 것으로 표시해야합니다. 심지어 데이터가로드 될 때 MyList에 대한 ViewModel에서 RaisePropertyChanged를 수행했지만 UI는 여전히 선택한 항목을 표시하지 않습니다. 응용 프로그램을 디버깅 한 후에도 MyList가로드되고 ViewModel의 Mylist에 대해 발동 된 CollectionChanged가 있지만 MyList에 바인딩되어 있지만 ListBoxSelectedItemsBehavior의 바인딩 항목 SelectedItems에 대해 발동되지 않은 CollectionChanged 이벤트가 발견되었습니다.

이 문제를 해결하는 방법? 코드에서

MyList.CollectionChanged+=new System.Collections.Specialized.NotifyCollectionChangedEventHandler(MyList_CollectionChanged); 

사용

+0

잘 알고 계시 겠지만, 의도적으로 '_myList'멤버를 무시하는 코드 스 니펫이 있습니까? 귀하의 부동산 'MyList'는 기술적으로 개인 변수를 전혀 사용하지 않습니다. – Tejs

답변

0

봅니다 뒤에이 문제가 해결되기를 바랍니다.

관련 문제