如何使ListBox中的TreeView选定项保持同步?

时间:2009-05-29 21:59:54

标签: c# wpf xaml mvvm

我确信之前已经出现过,但我找不到答案。

我制作了一个基本的ViewModel,其中包含一个People(一个Person数组)列表,其中包含一个名为SelectedPerson的属性,该属性自然指向People列表中当前选定的Person。我还有一个ListBox和一个TreeView,它们可以数据绑定到ViewModel的People列表。

我想做的是保持ListBox的SelectedValue和TreeView的SelectedItem与ViewModel的SelectedPerson同步。这个想法是,无论SelectedPerson如何被修改(通过控件,通过代码等),所有控件都应该正确更新。我可以使用它来处理两个ListBox,这很不错,但我无法使用ListBox和TreeView,因为TreeView的SelectedItem只是通过XAML读取并且显然不可用。

我应该在哪里寻找有关这项工作的想法?

另请注意,我正在尝试在纯XAML中完成此工作。没有代码隐藏,因为我的应用程序中的XAML文件可以动态加载和更改。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用Selector.IsSyncronizedWithCurrentItem。

您可以将列表框和树视图绑定到同一数据源,并确保将IsSyncronized参数设置为true。然后,对一个当前项目的任何更改都将反映在另一个中。

可在此处找到更多信息:

link text

答案 1 :(得分:0)

我四处询问,我能找到的最佳解决方案是here

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/cc73893a-3383-4328-a002-ed8fb002a19d

它适用于我,但目前它不是最佳解决方案。