c# – EF ComboBox不显示SelectedItem绑定
作者:互联网
我正在使用Entity Framework和Caliburn.Micro来实现MVVM应用程序.
基本上,我已经将AuthorModel和BookModel设置为一对多的关系 – 一个有多本书的作者和一本只有一个作者的书.
我有一个SelectBookWindow,我使用DbContext加载ObservableCollection< Book>,从中我选择一个我要查看/编辑的书.然后我将选定的Book作为参数传递给EditBookWindow,其中我有一个组合框,枚举所有作者,但选择了当前作者.
在这里,我加载了ObservableCollection< Author>使用不同的DbContext实例并将其设置为组合框的ItemsSource,以及将SelectedItem =“{Binding Author}”设置为. (作者是Book的虚拟财产)
ComboBox正确显示作者列表.但是,它似乎没有将Book的作者显示为其SelectedItem.
这是因为我使用的是不同的DbContext实例吗?如果是这样,我该如何纠正这个问题?
解决方法:
是的.因为ItemsSource中的作者引用了不同的对象,尽管内容与绑定到SelectedItem的内容相同.
我对EF知之甚少,我猜你可以对两个实体使用相同的上下文.或者覆盖Author类的equals(和gethashcode)以比较内容,如果相同则返回true.
标签:c,mvvm,entity-framework,wpf,caliburn-micro 来源: https://codeday.me/bug/20190624/1282360.html