2

在我的 Windows 应用商店 XAML 应用程序中,我使用 WinRTXamlToolkit 中的 TreeView 控件,并尝试将 SelectedItem 属性双向绑定到 ViewModel 上的属性。

开箱即用,SelectedItem 属性是只读的,这是有道理的,因为控件支持虚拟化。

我已经看到一些人使用附加属性、辅助方法等解决这个问题,在这个问题中可以看到一个很好的例子

WPF MVVM TreeView SelectedItem

但是所有的问题/解决方案都不是基于 WinRT,而且我所有为 WinRT 应用程序重新编写解决方案代码的尝试都被证明是徒劳的。

所以,我的问题是,这在 WinRT 应用程序中是否可行?我错过了什么?谢谢

4

1 回答 1

1

我会跳过尝试为视图模型提供全局可绑定属性,而是在调试工具的控件使用示例中使用as的IsSelectedBindingPathIsExpandedBindingPath属性。然后,当您想从视图模型中选择/扩展一个项目时 - 使用类似于在我的视图模型中的方法,我在项目/节点视图模型中从视图模型树的根的整个路径中基本上设置为 true 并加载如果预期路径中的节点不存在,则树的内容。TreeViewSelectItem()IsExpanded/IsSelected

于 2014-07-27T06:33:28.360 回答