Я пытаюсь создать комбинированный список в сетке данных. Пока у меня есть две версии этого списка, и ни одна из них не работает так, как хотелось бы.
Следующий код может сохранить изменения в сетке данных, но не может загрузить значение (далее упоминается как V1)
<DataGridComboBoxColumn Header="Direction" Width="*">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="DisplayMemberPath" Value="Name"/>
<Setter Property="SelectedValuePath" Value="Type"/>
<Setter Property="SelectedValue" Value="{Binding dt}"/>
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.paramDirection}"/>
<Setter Property="DisplayMemberPath" Value="Name"/>
<Setter Property="SelectedItem" Value="{Binding dt}"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
Следующий код может загрузить значение, но не может сохранить его (далее упоминается как V2)
<DataGridTemplateColumn Header="ColumnHeader">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding dt.Name}" IsEnabled="False"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox x:Name="cmbbx" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.paramDirection}" DisplayMemberPath="Name" SelectedItem="{Binding dt}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
Я получаю доступ к значению в выпадающем списке через событие для функции команды
currentCellValue = (((ComboBox) e.EditingElement) .SelectedItem);
Эта строка отлично работает на V1, но не на V2. Поэтому я хочу знать, есть ли способ получить информацию «SelectedItem» из DataGridTemplateColumn (если да, то как, а если нет, каковы альтернативы).
Любая помощь будет принята с благодарностью.