WPF组合框行为怪异

WPF组合框行为怪异,wpf,data-binding,binding,combobox,Wpf,Data Binding,Binding,Combobox,我有两个组合框,我们称之为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

我有两个组合框,我们称之为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的属性,其中包含一组模型对象(typeof IList)。基本上,这两个类之间是一对多的关系


顺便说一下,这两个类在NHibernate中使用。现在,当我运行应用程序时,包含品牌对象集合的cbo1首先加载项目。当我选择品牌项目时,将填充带有模型集合的cbo2。正如您所注意到的,两个组合框都选择了绑定到当前对象属性品牌和模型的EdItem属性。在cbo2上选择模型时,它不会反映到当前对象的模型属性。我遗漏了什么吗?

输入错误:第一个组合称为cbo1,但第二个组合绑定到cbxBrand;但是既然你说模型确实出现了,我猜这在你的实际源代码中是可以的,你为了这个问题把它重命名了

无论如何,你的代码对我来说完全有效,我在Model属性的setter上设置了一个断点,它没有问题,所以我唯一能猜到的是窗口的DataContext可能不正确?
你能把你的代码放在后面(或视图模型)吗?

哦,对不起,cbxBrand实际上是cbo1。。。为了这个问题把它重命名了。酷。。那么,您是否仔细检查了DataContext?重新迭代:您编写的代码是完全正确的,只要您绑定到(即已将DataContext设置为)暴露属性“Brand”和“Model”的对象是的,我已在包含两个组合框的父网格元素处设置DataContext。我不知道为什么cbo2元素中选定的模型项没有反映在DataContext的Model属性中。这就是为什么它很奇怪。