如何只需单击一下即可在编辑模式下设置ComboBoxColumn

时间:2015-04-14 11:40:38

标签: c# wpf datagrid triggers styles

我试图在DataGrid中跳过一次额外的点击来选择comboBox项目。默认情况下,您需要3次点击:焦点细胞 - > Edite模式 - >拉单。

此代码:

               <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>

但它弄乱了我的绑定方案(它没有拉动comboBox项目列表)。

此外,我在其他地方使用此代码:

<Trigger Property="IsMouseOver" Value="True">
    <Setter Property="IsEditing" Value="True" />
</Trigger>

但是它只需点击一下即可获取列表,在某些情况下我不想要它。

2 个答案:

答案 0 :(得分:0)

当我遇到这个问题时,我用模板列替换了combobox列,并将单元格模板设置为组合框。

然后我意识到使用组合框处理模板列要容易得多,而不是使用comboboxColumn

答案 1 :(得分:0)

可能你已经检查了这个,但点击了另一个项目后是否重置了“IsEditing”?也许添加默认值实际上是假的?