我的 wpf 应用程序中有一个 dataGrid,我使用双击鼠标事件来显示在 dataGrid 中选择的元素的详细信息。
但是,当我使用垂直滚动的导航箭头时,我遇到了一个问题,因为快速单击鼠标按钮然后触发双精度事件是很常见的,但是我只想在双击时显示详细信息数据网格的行,不在导航箭头中。
单击导航箭头时,如何禁用双击事件?
谢谢。
编辑: 我找到了一个使用鼠标输入绑定和手势的解决方案。如果我双击行区域而不是垂直或水平滚动条,输入绑定似乎只会触发命令。但是,如果表格只有几行,并且您看到最后一行下方的灰色区域,并且我在该区域中双击,则事件被触发,所以我会遇到同样的问题,但至少在我使用滚动条。
解决方案是这样的:
AXML
<DataGrid>
<DataGrid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding DgdComponentesMouseDoubleClickCommand}" CommandParameter="{Binding ElementName=dgdComponentes, Path=SelectedItems, Mode=OneWay}"/>
<KeyBinding Key="Enter" Command="{Binding DgdComponentesMouseDoubleClickCommand}" CommandParameter="{Binding ElementName=dgdComponentes, Path=SelectedItems, Mode=OneWay}"/>
</DataGrid.InputBindings>
</DataGrid>
视图模型
private RelayCommand<object> _dgdComponentesMouseDoubleClickCommand;
public RelayCommand<object> DgdComponentesMouseDoubleClickCommand
{
get { return _dgdComponentesMouseDoubleClickCommand ?? (_dgdComponentesMouseDoubleClickCommand = new RelayCommand<Object>(dgdComponentesMouseDoubleClick)); }
}