简体   繁体   中英

WPF DataGrid Double Click event in CellEditingTemplate

I have a WPF DataGrid. With a single click I can edit every cell in the DataGrid.
I also want to open a new Window on a double click.

That double click event works for a normal DataGridTextColumn like this

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

But how to do it using a Template like this when I am in editing mode of the TextBox:

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

Currently when in edit mode the double click does get fired.
Perfect would be a solution that works for the complete DataGrid which I do not have to add to every single column in the DataGrid.

I think adding the "MouseDoubleClick" event handler for TextBox would work. Even it's in template.

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM