http://joshsmithonwpf.wordpress.com/2007/06/12/searching-for-items-in-a-listboxにあるJoshSmithの例に基づいて、リストにテキストボックスフィルターを実装しています。基本的に、ビューのフィルターを、検索ボックス内のテキストをチェックするデリゲートに設定します。私は次のようにフィルターを接続します:
var pickerView = FindResource("sortedRulesView") as CollectionViewSource;
new TextSearchFilter(pickerView.View, SearchTextBox);
後でObjectDataProviderを更新すると、フィルターが失われます。更新後、pickerView.Viewのハッシュコードが異なることに気付きました。データが更新されると、すべてのビューが再作成されますか?ObjectDataProvider.Refresh()を呼び出すたびに、フィルターを再度アタッチする必要があるということですか?ベビーシッターを必要としないこのフィルターをインストールするためのよりスマートな方法はありますか?