さまざまなフィルタリング要件を持つダイアログ ビュー モデルで CollectionViewSource を使用していますが、これは正常に機能します。また、プロパティ (SelectedProject) で選択したアイテムと同等のものを維持しています。ビューは現在のアイテムを認識しているため、それを廃止できるかどうか、または廃止すべきかどうか疑問に思っています。私のデータバインディングは次のようになります:
<ListView
ItemsSource="{Binding Projects.View}"
IsSynchronizedWithCurrentItem="True"
SelectedItem="{Binding SelectedProject, Mode=TwoWay}">
単体テストを容易にするために SelectedProject のセッターを使用していますが、私が見る限り、CurrentItem は設定できないようです。また、使用したいときに適切なオブジェクトにキャストする必要があります。OTOH、 SelectedProject が冗長な場合は、他の冗長性と同じように尊重して削除します。
では、通常、CollectionViewSource を使用しているときに、現在のアイテムをどのように処理するのでしょうか?