告诉我事实并非如此.
我有一个典型的Windows /文件浏览器,如安装程序.
左侧我有一个TreeView所有数据绑定显示层次结构中的节点
右侧我有一个显示Node.Properties的ListView
ListView有一个IsSynchronizedWithCurrentItem属性.例如,如果我有另一个ListView显示节点列表,并且两个listView都将此属性设置为true.在NodesListView中更改节点选择将自动更新PropertiesListView.
现在我需要与NodesTreeView和PropertiesListView相同的东西......并且看起来TreeView没有这样的属性.
是否有更多的'WPF方式'解决这个问题?或者我是否必须处理Tree的NodeSelectionChanged事件并通过代码刷新listView.
一个非常简单的解决方案是将"details"UI元素绑定到TreeView的SelectedValue属性.例如,如果您的TreeView看起来像这样:
然后,您可以使用以下命令绑定详细信息UI元素(如文本框):
将导致文本框绑定到TreeView中当前所选项目的Name属性.
如果要将许多UI项目绑定为所选TreeView项目的详细信息,请考虑在包含所有详细信息控件(DockPanel/Grid/StackPanel等)的elemtent上设置DataContext.