我有2个组合框,我们称之为cbo1和cbo2。现在,cbo1和cbo2之间存在关系。当我在cbo1中选择一个项目时,cbo2 ItemsSource会更新(因为它绑定到SelectedItem),无论如何,下面是它的示例XAML代码。
<ComboBox x:Name="cbo1" Grid.Row="0" Grid.Column="1" Margin="5" SelectedItem="{Binding Path=Brand}"></ComboBox>
<ComboBox x:Name="cbo2" Grid.Row="1" Grid.Column="1" Margin="5" SelectedItem="{Binding Path=Model}" ItemsSource="{Binding ElementName=cbo1, Path=SelectedItem.Models}" DisplayMemberPath="Name"></ComboBox>
使用的对象是品牌和型号。 Brand有一个名为Models的属性,它包含一组Model对象(typeof IList)。所以基本上,两个类之间有一对多的关系。
顺便说一句,这两个类在NHibernate中使用。现在,当我运行应用程序时,首先加载包含Brand对象集合的cbo1。当我选择Brand项目时,将填充带有Model集合的cbo2。正如您所注意到的,两个Combobox都具有SelectedItem属性,特定于当前对象属性Brand和Model。当我在cbo2上选择一个Model时,它不会反映到当前对象的Model属性。我错过了什么?
答案 0 :(得分:1)
错误:第一个组合称为cbo1,但第二个组合绑定到cbxBrand;但是既然你说模型做出现了,我猜你的实际源代码就可以了,你在这里重新命名了问题吗?
无论如何,你的代码对我来说完全有效,我在Model属性的setter上放了一个断点,它没有打到probs,所以我唯一猜到的是Window的DataContext可能不正确? 你可以发布你的代码隐藏(或ViewModel)吗?