0

我在 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,也为 ViewModel 中的 Mylist 触发了 CollectionChanged,但没有为 ListBoxSelectedItemsBehavior 中的绑定项 SelectedItems 触发 CollectionChanged 事件,尽管它已绑定到 MyList。

如何解决这个问题?

4

1 回答 1

0

尝试使用

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

从后面的代码希望它可以解决您的问题。

于 2012-05-02T14:40:01.603 回答