【发布时间】:2013-06-20 13:53:35
【问题描述】:
我在 WPF 应用程序中使用 EntityFramework 库,但遇到以下问题: 我正在使用 MVVM 模式(据我所知),我正在尝试使用 EF 值进行组合框查找。
- 我有一个包含许多办公室的公司类(也是一个类)
- 这是通过 EntityFramework 建模的,所有链接都是正确的(Office 有一个 CompanyName,它是一个外键)。
这里是 OfficeView 类:
public partial class AddOffice : Window
{
private DBHelper.ResourceManagementContext context = new DBHelper.ResourceManagementContext();
public AddOffice()
{
InitializeComponent();
context.Companies.Load();
this.DataContext = context.Companies.Local;
//this.DataContext = new AddOfficeViewModel();
}
public void CloseCommandHandler(object sender, ExecutedRoutedEventArgs e)
{
this.Close();
}
}
这是对应的 XAML:
<Label Grid.Row="4" Grid.Column="0" Margin="10,10">Company:</Label>
<ComboBox Grid.Row="4" Grid.Column="1" Margin="10,10"
ItemsSource="{Binding}"
DisplayMemberPath="CompanyName"
SelectedValuePath="CompanyName"
SelectedValue="{Binding Path=CompanyName}"/>
我知道 MVVM 模式通常将 ViewModel 传递给 View,那么我将如何使用 OfficeViewModel 将 EntityFramework Company 列表绑定到 ComboBox?
我了解 ComboBox 属性。我知道所选值将是 Office 对象中的 CompanyName,SeletecValuePath 将是 Company 对象中的 CompanyName。
【问题讨论】:
-
如果你将 datacontext 设置为 .Local 你应该向我们展示这个类的代码。从您发布的 xaml - .Local 是某种类型的集合,该集合中的每个项目都应该至少有一个公共属性 CompanyName。是这样吗?