我在ViewModel中定义了一个ObservableCollection,如:
//private ObservableCollection<MyObject> _myList;
public ObservableCollection<MyObject> MyList {get;set;}
然后我尝试将其绑定到ListBox的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。
如何解决此问题?
答案 0 :(得分:0)
尝试使用
MyList.CollectionChanged+=new System.Collections.Specialized.NotifyCollectionChangedEventHandler(MyList_CollectionChanged);
从代码背后希望它能解决你的问题。