我敢肯定这已经解决了,但是我找不到答案。

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

我想做的是使ListBox的SelectedValue和TreeView的SelectedItem与ViewModel的SelectedPerson保持同步。想法是,无论如何修改SelectedPerson(通过控件,通过代码等),所有控件都应正确更新自己。我可以让它与两个ListBoxes一起工作,这很好,但是我无法使其与ListBox和TreeView一起工作,因为TreeView的SelectedItem是只读的,并且显然无法通过XAML进行访问。

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

另请注意,我正在尝试使之在纯XAML中工作。我的应用程序中的XAML文件中没有任何代码可以动态加载和更改。

谢谢!

最佳答案

您可以使用Selector.IsSyncronizedWithCurrentItem。

您可以将列表框和树 View 都绑定(bind)到同一数据源,并确保将IsSyncronized参数设置为true。这样一来,对当前项目的任何更改都会反射(reflect)在另一项中。

更多信息可以在这里找到:

link text

关于c# - 如何使TreeView和ListBox选定项保持同步?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/928350/

10-15 19:05