Прокрутка события двойного щелчка мыши Datagrid firing mouse

У меня есть 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>

person Pradeep Singh    schedule 29.08.2013    source источник
comment
Посмотрите на этот вопрос: stackoverflow.com/questions/6123748/   -  person Vladimir    schedule 29.08.2013


Ответы (1)


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

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

person Sheridan    schedule 29.08.2013
comment
Это неверно. Это то же самое поведение, потому что обработчик doubleclick предназначен для всей таблицы данных. - person B.K.; 25.02.2014