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