我的 C# 代码中的数据网格有以下内容:
<DataGrid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding CmdTransUnitFillerRowDblClick}" />
</DataGrid.InputBindings>
它在大多数情况下都有效,除非用户先选择该行(单击)然后尝试双击该行。在这种情况下,永远不会触发 CmdTransUnitFillerRowDblClick 代码进行处理。
那么,当行已被选中时,我怎样才能让 CmdTransUnitFillerRowDblClick 在双击时正确触发?
既然有人会问:
private void ExecutecmdTransUnitFillerRowDblClick(object parameter)
{
if (DgTransUnitFillerSelectedItem != null)
TransUnitFillerDoubleClick(DgTransUnitFillerSelectedItem.CollectionRowId);
}
最佳答案
参见 my answer to another related question .问题在于,在用户选择一行(实际上是单元格)后,数据网格不再具有焦点;用户在数据网格中 单击的单元格。因此,您必须将焦点更改回数据网格以允许这样做。
改变:
<DataGrid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding CmdTransUnitFillerRowDblClick}" />
</DataGrid.InputBindings>
收件人:
<DataGrid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding CmdTransUnitFillerRowDblClick}" />
<MouseBinding Gesture="LeftClick" Command="{Binding CmdTransUnitFillerRowClick}" />
</DataGrid.InputBindings>
...并添加:
private void ExecutecmdTransUnitFillerRowClick(object parameter)
{
if (DgTransUnitFillerSelectedItem != null)
The_Name_Of_Your_DataGrid.Focus();
}
关于c# - 双击数据网格的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455461/