Я использую библиотеку EntityFramework в своем приложении WPF, и у меня возникает следующая проблема: Я использую шаблон MVVM (насколько мне известно), и я пытаюсь сделать Combobox Lookup со значениями EF.WPF Combobox Entity Framework Binding (MVVM)
- У меня есть класс компании, которая содержит много офисов (класс а)
- Это было смоделировано через 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 к просмотру, так как я бы выполнить привязку список EntityFramework Company в ComboBox с помощью OfficeViewModel?
Я понимаю свойства ComboBox. Я знаю, что выбранным значением будет имя CompanyName из объекта Office, а SeletecValuePath будет CompanyName из объекта Company.
Если вы установили datacontext в .Local, вы должны показать нам код этого класса. из опубликованного вами xaml - .Local - это некоторый тип коллекции, и каждый элемент в этой коллекции должен иметь как минимум публичное свойство CompanyName. Это так? – blindmeis