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 で選択されたように表示させる必要があります。データがロードされたときに MyList の ViewModel で RaisePropertyChanged を実行しても、UI はそれらのアイテムを選択したとおりに表示しません。アプリをデバッグした後、MyList が読み込まれていて、ViewModel の Mylist に対して CollectionChanged が発生していることがわかりましたが、MyList にバインドされているにもかかわらず、ListBoxSelectedItemsBehavior のバインド項目 SelectedItems に対して CollectionChanged イベントが発生しませんでした。
この問題を解決するにはどうすればよいですか?