Прокрутка события двойного щелчка мыши при стрельбе из 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>

1 ответ

Решение

Я могу только предположить, что ваш Interaction.Triggers вызывают вашу проблему. Я принимаю, что вы хотите "преобразовать" это событие в Command, но если вы реализуете стандарт MouseDoubleClick Вместо обработчика (только временно), вы увидите, что прокрутка вообще не запускает обработчик.

Вы все еще можете преобразовать это событие в Command по вашему усмотрению Attached Property, Их относительно просто создать, и вы можете узнать, как это сделать, на странице Обзор вложенных свойств в MSDN.

Другие вопросы по тегам