ビジュアルUIのツリーをトラバースして、ビジュアル要素のTagプロパティにバインドされたIDを持つ要素を探したいと思っています。wpfツリービュー内のすべての項目をナビゲートする
私はこれをどうやってやっているのだろうか。コントロールには子をトラバースする必要がありません。
LogicalTreeHelper.GetChildrenは、TreeViewコントロールをヒットするまで意図したとおりに動作するように見えますが、LogicalTreeHelper.GetChildrenは子を返しません。
注:目的は、データ項目に対応するビジュアルUI要素を見つけることです。つまり、アイテムのIDがあれば、Goはそれを表示するUI要素を見つけます。
編集:私は明らかに十分にこれを説明していない。いくつかのデータオブジェクトをTreeViewコントロールにバインドし、そのビジネスオブジェクトのIDを指定してプログラム的に特定のアイテムを選択したいと考えています。データオブジェクトのIDが適切なビジュアル要素のTagプロパティにあるので、ビジュアルツリーをトラバースして、必要な要素を見つけることがなぜ難しいのか分かりません。私はMoleを使用しており、タグ内に適切なIDを持つUI要素を見つけることができます。私はちょうどコードの視覚的な要素を見つけることができません。 LogicalTreeHelperはツリー内のどのアイテムもトラバースしません。また、ItemContainerGenerator.ContainerFromItemはツリービュー内のアイテムのために何も検索しません。
TreeViewでの私の作業に基づいて、これはどのように動作します。ツリーノードの前にはビジュアルツリーがありません。これらは必要に応じてオンデマンドで作成されます。したがって、「ビジュアルツリー」を確実にナビゲートすることはできません。 –