【问题标题】:WPF DataGrid Double Click event in CellEditingTemplateCellEditingTemplate 中的 WPF DataGrid 双击事件
【发布时间】:2017-01-15 19:10:52
【问题描述】:

我有一个 WPF 数据网格。只需单击一下,我就可以编辑 DataGrid 中的每个单元格。
我也想双击打开一个新窗口。

双击事件适用于像这样的普通 DataGridTextColumn

<DataGridTextColumn Binding="{Binding Path=Name}" >
    <DataGridTextColumn.EditingElementStyle>
        <Style TargetType="TextBox">
            <EventSetter Event="MouseDoubleClick" Handler="CellEditDoubleClick"/>
        </Style>
    </DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>

但是当我处于文本框的编辑模式时,如何使用这样的模板:

<DataGridTemplateColumn Header="Weight">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=Weight}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <TextBox x:Name="WeightEditTextBox" Text="{Binding Path=Weight}" >
                <i:Interaction.Behaviors>                       
                    <helper:TextBoxInputRegExBehaviour RegularExpression="^\d+\,?\d*$" />
                </i:Interaction.Behaviors>
            </TextBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

目前在编辑模式下,双击确实会被触发。
Perfect 将是一个适用于完整 DataGrid 的解决方案,我不必将其添加到 DataGrid 中的每一列。

【问题讨论】:

  • DataGrid 有一个 MouseDoubleClick 事件。你试过用那个吗?
  • 是的,在 TextBox 单元格的编辑模式下它不会被触发。

标签: c# wpf


【解决方案1】:

我认为为 TextBox 添加“MouseDoubleClick”事件处理程序会起作用。甚至在模板中。

<DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <TextBox x:Name="WeightEditTextBox" Text="{Binding Path=Weight}" MouseDoubleClick="WeightEditTextBox_MouseDoubleClick">
                        <i:Interaction.Behaviors>

                        </i:Interaction.Behaviors>
                    </TextBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>

【讨论】:

    猜你喜欢
    • 2019-02-09
    • 2013-08-31
    • 1970-01-01
    • 2011-08-22
    • 2014-05-12
    • 1970-01-01
    • 2011-10-19
    • 2013-01-11
    • 1970-01-01
    相关资源
    最近更新 更多