Josh Smith 写了一篇关于在 WPF 中使用 TreeView 控件的清晰、简洁的教程。成功的秘诀是将视图模型的 IsExpanded 和 IsSelected 属性绑定到树视图项。论文在这里。
然而,在尝试将他的方法映射到 Silverlight Toolkit TreeView 一天之后,我开始怀疑这是不可能的。
我首先偶然发现了 IsExpanded 的绑定问题,直到我发现在附加的DependencyProperty
. 这看起来很有希望,但仍然无法正常工作。
似乎带有 WPF 的 TreeView 控件和 Silverlight 工具包之间存在一些根本区别;正如 Josh 在他的精彩示例中所做的那样,这些差异否定了从视图模型中驱动视图的可能性。在 WPF 中搜索 viewmodel 数据并将更新 IsExpanded=true 向上级联对 Josh 非常有用,但在 Silverlight 中对我来说不是很多。
实际上是否有可能 1) 在 viewmodel 对象的层次结构中找到一个节点,然后将该节点的所有 IsExpanded 属性设置为 True 到根,并将其反映在绑定视图中?
(如果有帮助,我们正在使用 MVVM-light)