У меня была такая же проблема, и я решил ее следующим образом:
<DataGridTemplateColumn Header="Rezept">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyRecipe.Name}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=DataContext.RecipeList}" DisplayMemberPath="Name" SelectedValue="{Binding MyRecipe}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
MyRecipe
находится в DataContext этой DataGrid, но RecipeList
находится только в DataContext предка DataGrid. В конце CellEditingTemplate
есть термин SelectedValue="{Binding MyRecipe}"
, который возвращает результат комбинированного списка. В этом случае он сохраняется в MyRecipe
.
Я надеюсь, что это поможет Вам.