C# 如何通过单击将ComboBoxColumn设置为编辑模式
我试图跳过DataGrid中选择组合框项目的一次额外单击。默认情况下,您需要3次单击:焦点单元格->编辑模式->拉列表 此代码:C# 如何通过单击将ComboBoxColumn设置为编辑模式,c#,wpf,datagrid,triggers,styles,C#,Wpf,Datagrid,Triggers,Styles,我试图跳过DataGrid中选择组合框项目的一次额外单击。默认情况下,您需要3次单击:焦点单元格->编辑模式->拉列表 此代码: <DataGridComboBoxColumn.CellStyle> <Style TargetType="DataGridCell"> <Style.Triggers>
<DataGridComboBoxColumn.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="IsEditing" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</DataGridComboBoxColumn.CellStyle>
它对我有效,但对每个列单元格只有一次。第一次它工作正常,然后如果我点击其他地方,点击同一个单元格,我需要像默认一样点击3次
一些注意事项:
我试过这个变体:
<Trigger Property="IsFocused" Value="True">
<Setter Property="IsEditing" Value="True" />
</Trigger>
但它打乱了我的绑定方案,它没有拉组合框项目列表
我还在其他地方使用此代码:
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsEditing" Value="True" />
</Trigger>
但它只需单击一下就可以拉列表,在某些情况下我不想要它。当我遇到这个问题时,我用模板列替换了combobox列,并将单元格模板设置为combobox
然后我意识到,处理带有combobox的模板列要比处理comboboxColumn容易得多,可能您已经选中了,但是在单击另一项后是否重置了iEdit?也许将默认值添加为false?谢谢您的回答,但我现在不想更改我的dataGrid,也不太需要这种更改。也许有人会知道,为什么这个触发器只发生一次。我将在未来寻找新DataGrid的单元格模板。当然,如果您发现,请发布答案。谢谢: