首页 文章

未显示Silverlight 4 MVVM ComboBox数据绑定

提问于
浏览
2

我有一个ComboBox与以下XAML

<ComboBox Name="CompanyComboBox"
    ItemsSource="{Binding Path=CompanyList, Mode=OneWay}" 
    SelectedItem="{Binding Path=CurrentCompany, Mode=TwoWay}"
    DisplayMemberPath="Name" />

问题:'company'上的选定选项是持久的,但在加载时永远不会显示 . 什么遗失或出错,或者我忘了做什么?

  • CompanyList有数据,ComboBox确实填充了

  • ComboBox上的选择确实通过TwoWayBinding保存到数据库

  • More code is on pastebin.com,ViewModel和Company类代码 .

我试过以下建议, that have so far not solve the issue

4 回答

  • 1

    如果对象的数据相同,则需要覆盖 Company.Equals() 方法以返回 true .

    默认情况下,如果被比较的两个公司对象在内存中共享相同的位置,它只返回 true ,我猜你的 CurrentCompany 对象没有指向 CompanyList 中的对象,所以 SelectedItem 被设置为 null

  • 3

    检查分配给CurrentCompany的实例是否是CompanyList中包含的实际实例,而不是它的副本 .

  • 0

    您可以尝试这样做:在ViewModel中填充CompanyList之后,将CurrentCompany设置为第一个公司,或者设置一个虚拟项目,或者根据您的上下文 .

  • 0

    我们可以看一下视图模型吗?在此信息不存在之前,可以进行以下暂停 .

    • CurrentCompany属性不是公共属性或不是属性 .

    • View模型未实现INotifyPropertyChanged接口 .

    • CurrentCompany属性的Setter不包含PropertyChanged事件通知 .

相关问题