我设法双击我的一个datagrid行,通过这个xaml在我的viewmodel上执行一个命令:
当我点击第一列区域中的某个区域(绑定到只读ID)时,这很有效,但是当在第二列中的文本框区域中完成双击时失败(CustomerNumber,当然,当然抓住双击)。
对于这两种情况,哪种方式可以像MVVM一样处理双击?
答案 0 :(得分:1)
您可以将DataGridTextColumn
替换为DataGridTemplateColumn
,并将MouseBinding
添加到TextBox
中的CellEditingTemplate
:
<DataGridTemplateColumn Header="Customer Number">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding CustomerNumber}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding CustomerNumber}">
<TextBox.InputBindings>
<MouseBinding Gesture="LeftDoubleClick"
Command="{Binding DataContext.EditCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
</TextBox.InputBindings>
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>