0

深さが異なるWPF TreeViewがあります。私のアプリケーションには、ツリー内を検索する機能もあります。これは、ICollectionView インターフェイスの Filter プロパティを使用して実現されます。検索とフィルタリングはすべて正常に機能しますが、フィルターを削除しようとすると問題が発生します。

次のシナリオがあります。検索条件を入力すると、ツリービューがフィルタリングされ、結果が表示されます。ボタンを押してフィルターをクリアすると、フィルターは削除されますが、問題は、以前に検索したものの子ノードのみが表示され、他のノードの子ノードが表示されないことです。これらのノードも展開できません。もう。

私の検索機能は、ツリーを再帰的にたどり、入力された検索テキストについて各ノードをテストします。

view.Filter = null; を適用する必要がありますか? 各ノードとその子ノードのステートメント?

ありがとう、

許す

4

1 に答える 1

1

はい!

すべての階層レベルには独自の ICollectionView があり、それぞれ独自のフィルタリングを使用します。はい、すべての(親)ノードでフィルターをクリアする必要があります(正確な実装によって異なります)。

于 2011-04-18T16:55:34.050 に答える