假设我有一个类,我们称之为Parent。这个类有一个属性,另一个类的对象,我们称之为Child。Child有一个int属性ID。
现在这些类的实例是基于数据库表中的行。
所以假设Parent有一个Child实例,它的ID=4,在我的程序中将有一个下拉列表,其中包含所有可用的Child实例,以便我们可以更改Parent中的实例。
问题在于,由于设计不良,所有子对象的列表是在与Parent内部的Child不同的场合实例化的,因此即使它们都具有ID=4,它也无法将它们识别为相同的对象(因为当然它们不是同一个对象)。
但是,我仍然希望相同ID的对象成为ComboBox的默认对象。当然,我应该以某种方式引用ID,但是在十二月的黑暗月份里,我有点慢,我看不到如何做到这一点,因为它仍然是我设置的对象而不仅仅是int值。
以下是XAML代码:
现在这些类的实例是基于数据库表中的行。
所以假设Parent有一个Child实例,它的ID=4,在我的程序中将有一个下拉列表,其中包含所有可用的Child实例,以便我们可以更改Parent中的实例。
问题在于,由于设计不良,所有子对象的列表是在与Parent内部的Child不同的场合实例化的,因此即使它们都具有ID=4,它也无法将它们识别为相同的对象(因为当然它们不是同一个对象)。
但是,我仍然希望相同ID的对象成为ComboBox的默认对象。当然,我应该以某种方式引用ID,但是在十二月的黑暗月份里,我有点慢,我看不到如何做到这一点,因为它仍然是我设置的对象而不仅仅是int值。
以下是XAML代码:
<DataTemplate x:Key="EditTemplate" DataType="{x:Type data:Parent}">
<ComboBox ItemsSource="{Binding ElementName=Panel, Path=DataContext.ChildList}"
SelectedItem="{Binding Path=Child, Mode=TwoWay}"
SelectedValuePath="ID" DisplayMemberPath="Name" />
</DataTemplate>
v-bind:key
。 - Konrad