2012-04-30 18 views
0

私は次のようにビューモデルでのObservableCollectionを定義します。次に、このリストボックスのための複数選択を可能にINotifyCollectionChanged/ObservableCollectionのコードでCollectionChangedイベントを発生させるには?

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

:その後、私は次のように行動してリストボックスのためにselectedItemsのにバインドしようと

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

。ユーザーがマウスを使って複数の項目を選択した場合は問題ありません。

質問:最初にデータベースに格納されたアイテムデータが選択されています。データがデータベースから取得されたときに、私はCollectionChangedを起動し、selectedItemをUIで選択して表示する必要があります。データがロードされたときにMyListのViewModelでRaisePropertyChangedを実行したにもかかわらず、UIは選択したアイテムを表示しません。アプリケーションをデバッグした後、MyListがロードされていることがわかりました.ViewModelのMylistでCollectionChangedが発生しましたが、MyListにバインドされていてもListBoxSelectedItemsBehaviorのSelectedItemsというバインディングアイテムに対してCollectionChangedイベントが発生しませんでした。

この問題を解決するにはどうすればよいですか?

+0

あなたのコードスニペットは意図的に '_myList'メンバーを無視していますか?あなたのプロパティ「MyList」は、技術的に私用変数を全く使用しません。 – Tejs

答えて

0

は後ろのそれはあなたの問題を解決を願っていたコードから

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

を使用してみてください。