私は現在 ICollectionView で遊んでいますが、「なぜ」は理解していると思うが、「どうすれば修正できるのか」という問題に直面しています。:)
ICollectionView にデータバインドされた ComboBox があり、最初は次のコードで設定されています。
NameView = CollectionViewSource.GetDefaultView( names); // names is an IEnumerable<string> that comes from a LINQ query
NameView.CurrentChanged += new EventHandler(NameView_CurrentChanged);
IEnumerable<string>
新しいものを生成し、上記と同じコードで NameView を再度設定するコードを実行するまで、すべてがうまく機能します。これを行うと、CurrentItem
正しく機能しなくなります。
ComboBoxes にデータバインドする前にこの問題に遭遇しました。プロパティを newに設定する代わりにandObservableCollection<string>
を使用して、「バインド解除」の問題を回避します。Clear()
Add()
ObservableCollection<string>
ObservableCollection<string>
私の質問は次のとおりです。 1. プロパティを新しいコレクションに設定できるようにしたい場合は、どうにかして新しいコレクションとのデータバインディングを再確立できますか? もしそうなら、どのように?そうでない場合、これが根本的に不可能である理由の背後にある WPFisms を説明できますか? ObservableCollection<string>
2.またはの変更に対処する最善の方法は何ICollectionView
ですか? クリアして追加するだけの私のアプローチは、それを行う唯一の方法ですか?