まず、このテーマについてはさまざまな意見が寄せられると思います。
あなたがリンクした例では、その場合のビジュアルツリーウォーカーは間違った解決策だったと思います.WPFは通常、ある種のMVVMまたはMVPのようなパターンで使用するのが最適であり、それはデータバインディングを意味します.適切な構造を使用すると、ビジュアル ツリー ウォーキングで行った可能性のある多くのことをなくすことができます。
いわば「特殊効果」にのみ使用する傾向があります。私が取り組んでいる大きな内部 WPF アプリには、再利用可能な方法でいくつかの s にいくつかの便利な動作を追加する視覚的なツリー ウォーキング コードがありますItemControl
(型パラメーターを使用して、それを機能させるのはとても楽しいです)。
また、特定のユーザーが UI の特定の部分を操作できるかどうかを制御するシステムの一部であるいくつかの添付プロパティの実装でビジュアル ツリーをたどります。これは、このシステムが、基になるデータの内容に関係なく、ビジュアル ツリーを変換する必要があるためです。ユーザーのアクセス許可は、基になるデータがすべてのステップで心配する必要のない分野横断的な問題です。
基本的には、UI 自体に何かを行うためだけにそれを行います - より便利な方法では実行できない UI の動作 (正直に言うと、ほとんどの場合、他のほとんどの方法の方が便利です)、または実際にビジュアル ツリー ベースを調整します。 UI がバインドされているデータでは都合よく表現できない要因について。データを操作する場合は、常にバックエンドのデータ構造または ViewModel で行います。