Wpf 滚动Datagrid触发鼠标双击事件

Wpf 滚动Datagrid触发鼠标双击事件,wpf,xaml,datagrid,eventtrigger,Wpf,Xaml,Datagrid,Eventtrigger,我有一个DataGrid,我想在双击行时显示另一个表单,但即使我滚动DataGrid,该事件也会触发。如何使其仅在双击行时启动 我使用的是MVVM模式 <DataGrid Name="dgScopeRecords" Grid.Row="1" Grid.ColumnSpan="3" IsReadOnly="True" ItemsSource="{Binding Model.TableScopeRecords}" SelectedIndex="{Binding Model.SelectedIn

我有一个
DataGrid
,我想在双击行时显示另一个表单,但即使我滚动DataGrid,该事件也会触发。如何使其仅在双击行时启动

我使用的是MVVM模式

<DataGrid Name="dgScopeRecords" Grid.Row="1" Grid.ColumnSpan="3" IsReadOnly="True" ItemsSource="{Binding Model.TableScopeRecords}" SelectedIndex="{Binding Model.SelectedIndex}" Margin="0,10,0,0" AutoGenerateColumns="False" SelectionMode="Single">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseDoubleClick">
            <i:InvokeCommandAction Command="{Binding ViewScopeRecordCommand}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>

    <DataGrid.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#dca188"/>
    </DataGrid.Resources>

    <DataGrid.Columns>
        <DataGridTextColumn Header="{x:Static Resources:Translations.RecordsInspection_ColumnScope}" Binding="{Binding Scope.ScopeName}" Width="250"/>
        <DataGridTextColumn Header="{x:Static Resources:Translations.RecordsInspection_ColumnScopeType}" Binding="{Binding Scope.ScopeType.ScopeTypeName}" Width="100"/>
    </DataGrid.Columns>
</DataGrid>

我只能假设您的
交互。触发器是您的问题的根源。我同意您希望将该事件“转换”为
命令
,但如果您实现标准的
鼠标双击
处理程序(只是暂时),您将看到滚动根本不会触发该处理程序


您仍然可以在自己的自定义
附加属性
中将该事件转换为
命令
。它们的创建相对简单,您可以在MSDN的页面上找到如何创建它们。

看看这个问题:这是错误的。这是相同的行为,因为双击处理程序适用于整个datagrid。