У меня есть DataGrid, определенный как таковой с помощью шаблона проектирования MVVM:
<DataGrid Margin="10" Height="385" Width="1000" ItemsSource="{Binding Inspection.Details}" SelectedItem="{Binding SelectedDetail, Mode=TwoWay}" AutoGenerateColumns="False" CanUserAddRows="False" x:Name="grdDetails" CanUserSortColumns="True" HorizontalScrollBarVisibility="Visible" CanUserResizeColumns="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Code" Width="120" SortMemberPath="MFGCode">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<ComboBox FontSize="20" ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}},Path=DataContext.MFGCodes}" DisplayMemberPath="Value" SelectedValuePath="Value" SelectedValue="{Binding MFGCode,Mode=TwoWay}"></ComboBox>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Поле Combobox заполняется правильно, путем привязки к ObservableCollection в ViewModel.Существуют также другие столбцы (не представленные здесь), которые правильно привязаны к различным свойствам инспекции, определенной в модели представления.
При начальной нагрузке выпадающий список ПРАВИЛЬНО связывается с выбранным значением в InspectionDetail, представляющем MFGCode.
Единственная проблема заключается в том, что при изменении значения в выпадающем списке новое значение SelectedValue небудучи сохраненным в свойстве MFGCode SelectedDetail, как и следовало ожидать с привязкой TwoWay.
Я могу предоставить код ViewModel, как это было бы полезно, просто спросите.
Спасибо!