У меня возникли проблемы при попытке использовать DataGridComboBoxColumn для обновления моей структуры сущности
У меня есть сетка данных, которую я привязываю к пользовательской модели (FunctionPrinterLookupModel), которая в основном представляет собой поиск между принтерами и функциями вокруг здания. Все функции статичны, но я бы хотел, чтобы пользователи могли выбирать, какой принтер они используют для этой функции.
<DataGrid Grid.Row="1" x:Name="gridLookup" AutoGenerateColumns="False" Width="500" RowEditEnding="gridLookup_RowEditEnding" Margin="20">
<DataGrid.DataContext>
<Models:Printer/>
</DataGrid.DataContext>
<DataGrid.Columns>
<DataGridTextColumn Header="Function" Width="*" IsReadOnly="True" Binding="{Binding FunctionName}"/>
<!--<DataGridTextColumn Header="Printer" Width="*" Binding="{Binding PrinterName, UpdateSourceTrigger=PropertyChanged}"/>-->
<DataGridComboBoxColumn x:Name="ddlPrinters" Header="Printer" Width="*" SelectedValueBinding="{Binding PrinterID, Mode=TwoWay}" SelectedValuePath="{Binding PrinterID, Mode=TwoWay}" DisplayMemberPath="{Binding PrinterName}"/>
</DataGrid.Columns>
</DataGrid>
private void gridPrinters_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
if (e.EditAction == DataGridEditAction.Commit)
{
Printer printer = (Printer)e.Row.Item;
if (printer.PrinterID != 0)
{
Printer printerDB = context.Printers.Where(s => s.PrinterID == printer.PrinterID).Single();
printerDB.PrinterName = printer.PrinterName;
context.SaveChanges();
}
else
{
Printer newPrinter = new Printer()
{
PrinterName = printer.PrinterName
};
context.Printers.Add(newPrinter);
context.SaveChanges();
}
}
RefreshPrintersGrid();
}
Я связываю DataGridComboBoxColumn в коде с моделью EF, содержащей список принтеров.
Когда значение выбрано и мы запускаем функцию RowEditEnding, значение комбинированного списка не обновляется в модели FunctionPrinterLookupModel. Я чувствую, что завязываю себя здесь узлами и не смог найти решение, которое работает с моих часов поиска в Google. Может ли кто-нибудь помочь мне разобраться?