У меня есть DataGridTemplateColumn.CellEditingTemplate
столбец в DataGrid
.Происходит следующее: я могу видеть выбранный элемент, но не как ComboBox
, пока дважды не щелкну по нему, чтобы включить редактирование.
По сути, я хочу, чтобы он вел себя как CellTemplate
, но редактируемый как CellEditingTemplate
,Как мне этого добиться?
Я предпочитаю решение в Xaml
, а не в коде.
Я попытался установить Style.Trigger
для DataGridCell
, как показано ниже
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="HasContent" Value="True">
<Setter Property="IsEditing" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
Также попытался установить для свойства ComboBox IsEditable значение True
<DataGridTemplateColumn Header="Material" MinWidth="100">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox IsEditable="True" DisplayMemberPath="Code" SelectedItem="{Binding Path=Material,Mode=TwoWay}" ItemsSource="{Binding Source={x:Reference MaterialDef}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
Код очень прост
<DataGridTemplateColumn MinWidth="200" Header="Material" >
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox MinWidth="200" SelectedValuePath="{Binding Path=Material,Mode=TwoWay}" HorizontalAlignment="Right" Grid.Row="1" Grid.Column="2" DisplayMemberPath="Code" ItemsSource="{Binding Source={x:Reference Materials}}" Margin="2" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>