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



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

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

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

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

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

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

您还可以按照注释中的建议重写EqualsYourType方法,但如果两个集合都引用相同的对象,则不必这样做,因为它们应该这样做,因为第二个是第一个对象的子集。

最新更新