我在視圖模型定義了一個ObservableCollection喜歡:如何在INotifyCollectionChanged/ObservableCollection的代碼中觸發CollectionChanged事件?
//private ObservableCollection<MyObject> _myList;
public ObservableCollection<MyObject> MyList {get;set;}
然後我試圖把它與類似行爲綁定到SelectedItems的列表框:
<i:Interaction.Behaviors>
<My:ListBoxSelectedItemsBehavior SelectedItems="{Binding MyList, Mode=TwoWay}" />
</i:Interaction.Behaviors>
然後啓用此列表框多重選擇。通過用戶與鼠標的交互來選擇多個項目時很好。
問題:最初,選擇的項目數據存儲在數據庫中,當從數據庫中檢索數據時,我需要觸發CollectionChanged並讓這些selectedItem在UI中顯示爲選中狀態。即使我在ViewModel中爲數據加載時爲MyList創建了RaisePropertyChanged,UI仍然不會將這些項目顯示爲選中狀態。在調試應用程序後,我發現即使加載了MyList,CollectionChanged也會在ViewModel中爲Mylist觸發,但CollectionChanged事件不會針對ListBoxSelectedItemsBehavior中的綁定項SelectedItems觸發,儘管它綁定到MyList。
如何解決此問題?
只要你知道,是你的代碼片斷故意忽略'_myList'成員?你的財產'MyList'技術上根本不使用私有變量。 – Tejs