Xaml 未显示Silverlight 4 MVVM组合框数据绑定
我有一个带有以下XAML的组合框Xaml 未显示Silverlight 4 MVVM组合框数据绑定,xaml,data-binding,silverlight-4.0,mvvm,combobox,Xaml,Data Binding,Silverlight 4.0,Mvvm,Combobox,我有一个带有以下XAML的组合框 <ComboBox Name="CompanyComboBox" ItemsSource="{Binding Path=CompanyList, Mode=OneWay}" SelectedItem="{Binding Path=CurrentCompany, Mode=TwoWay}" DisplayMemberPath="Name" /> 问题: “公司”上所选的选项将被保留,但不会在加载时显示。遗漏了什么或出了什
<ComboBox Name="CompanyComboBox"
ItemsSource="{Binding Path=CompanyList, Mode=OneWay}"
SelectedItem="{Binding Path=CurrentCompany, Mode=TwoWay}"
DisplayMemberPath="Name" />
问题:
“公司”上所选的选项将被保留,但不会在加载时显示。遗漏了什么或出了什么问题,或者我忘记做什么了
- CompanyList有数据,并且ComboBox会被填充
- 组合框上的选择通过双向绑定保存到数据库
- ,视图模型和公司类别代码
如果对象的数据相同,则需要覆盖
Company.Equals()
方法以返回true
默认情况下,如果要比较的两个公司对象在内存中共享同一位置,它只返回
true
,我猜您的CurrentCompany
对象没有指向CompanyList
中的对象,因此SelectedItem
被设置为null
检查分配给它的实例是否为o CurrentCompany是CompanyList中包含的实际公司,而不是它的副本。您可以尝试以下方法:
在ViewModel中填充CompanyList后,将CurrentCompany设置为第一个company,或者设置一个显示或取决于您的上下文的虚拟项。我们可以查看视图模型吗?在没有此信息之前,可能会给出以下怀疑
“公司”上的所选选项是持久化的,但不会在加载时显示。这是什么意思?您的组合框没有初始的“selectedItem”(在单击它打开下拉列表之前,框是空的)?我的意思是将更改保存到数据库中。同时更正没有“初始选定项”