比方說,我有一個類,讓我們將其命名爲父。這個類擁有另一個類的一個對象,我們稱之爲Child。孩子有一個int屬性ID。WPF:組合框,比較基於標識屬性的對象
現在這些類的實例基於數據庫表中的行。
因此,假設Parent有ID = 4的Child實例,並且在我的程序中會有一個包含所有可用Child實例的下拉列表,因此我們可以更改Parent中的實例。
問題在於,由於設計不好,帶有所有子對象的列表在獨立的場合從父級內的子實例進行實例化,因此即使它們都具有ID = 4,它也不會將它們識別爲相同的對象(因爲當然不是)。
但是,我仍然不想將相同的ID對象作爲ComboBox的默認ID對象。我當然應該以某種方式參考ID,但是在12月的黑暗月份,我有點慢,我不知道該怎麼做,因爲它仍然是我設置的對象,不僅是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>
嗯,當然應該工作。我一直在尋找XAML的解決方案,但是這當然可以工作,並且更加優雅。 – 2010-12-23 09:08:47