【问题标题】:How do I set ComboBoxColumn in edit mode with one click如何一键将 ComboBoxColumn 设置为编辑模式
【发布时间】:2015-06-20 00:08:10
【问题描述】:

我试图在 DataGrid 中跳过一次额外的单击以选择组合框项目。默认情况下,您需要单击 3 次:焦点单元 -> 编辑模式 -> 拉列表。

这段代码:

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

但它一键拉出列表,在某些情况下我不想要它。

【问题讨论】:

    标签: c# wpf datagrid triggers styles


    【解决方案1】:

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

    然后我意识到处理带有组合框的模板列比处理组合框要容易得多

    【讨论】:

    • 谢谢你的回答,但我现在不想改变我的dataGrid,我也不需要这个改变。也许有人会知道,为什么这个触发器只发生一次。我将在未来寻找新的 DataGrid 的单元格模板
    • 是的,如果你发现了,请发布答案谢谢:)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 2011-05-21
      • 2012-02-05
      相关资源
      最近更新 更多