编程语言
首页 > 编程语言> > c# – EF ComboBox不显示SelectedItem绑定

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