Josh Smithは、WPFでTreeViewコントロールを操作するための明確で簡潔なツアーを作成しました。成功の秘訣は、ビューモデルのIsExpandedプロパティとIsSelectedプロパティをtreeviewitemsにバインドすることです。論文はこちらです。
しかし、彼のアプローチをSilverlight Toolkit TreeViewにマッピングしようとした日の後、私はそれが不可能であると疑うようになりました。
添付のセッターを使用するという提案に出くわすまで、私は最初にIsExpandedのバインディングの問題に遭遇しましたDependencyProperty
。これは有望に見えましたが、それでも機能していません。
WPFを使用したTreeViewコントロールとSilverlightツールキットの間にはいくつかの基本的な違いがあるようです。Joshが素晴らしい例で行っているように、ビューモデルからビューを駆動する可能性を否定する違い。ビューモデルデータを検索し、更新IsExpanded = trueをカスケード接続すると、階層はWPFのJoshには最適ですが、Silverlightの私にはあまり機能しません。
実際、1)ビューモデルオブジェクトの階層でノードを見つけて、そのノードからルートまでのすべてのIsExpandedプロパティをTrueに設定し、それをバインドされたビューに反映させることは可能ですか?
(それが助けになるなら、私たちはMVVM-lightを使用しています)