【发布时间】: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 单元格的编辑模式下它不会被触发。