绑定到相同属性WPF的两个控件

时间:2017-07-20 21:21:24

标签: c# wpf mvvm

我有一个ListBox和一个DataGrid,ListBox显示了DataGrid列表的一个子集。我创建了两个控件分别绑定的列表,但是两个控件的SelectedItem都绑定到视图模型中的相同属性。当用户点击任一控件的项目时,我需要让两个控件都选择相同的项目,除非用户点击不在ListBox的子集中的项目上的DataGrid(然后ListBox不应该有选择的任何东西)。

我猜测,因为列表是单独创建的,它们不是同一个对象,所以有没有办法为控件提供某种比较逻辑,以选择一个基本上具有相同名称(或值或某种标准)?如果那不存在那么我想最好的方法是从超集中的完全相同的对象创建对象的子集列表。

1 个答案:

答案 0 :(得分:0)

  

我猜测因为列表是单独创建的,所以它们不是同一个对象

您可以将同一个对象添加到两个不同的集合中,例如:

YourType obj = new YourType();
list1.Add(obj);
list2.Add(obj);

这应该可以解决您的问题。

您还可以按照评论中的建议覆盖Equals YourType方法,但如果两个集合都引用了相同的对象,则他们不应该这样做,因为第二个是第一部分。