2013-08-29 4 views
1

나는 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> 
+0

이 질문을보십시오. http://stackoverflow.com/questions/6123748/show-rowdetails-on-double-click-in-wpf-datagrid – Vladimir

답변

0

나는 오직 Interaction.Triggers이 문제의 원인이라고 생각할 수 있습니다. 해당 이벤트를 Command으로 '변환'하시겠습니까? 대신 표준 MouseDoubleClick 처리기를 구현하면 (단지 일시적으로) 스크롤하면 이 아닌 처리기가 실행됩니다.

고객님의 맞춤형 Attached Property에서 여전히 해당 이벤트를 Command으로 변환 할 수 있습니다. 비교적 간단하게 만들 수 있으며 MSDN의 Attached Properties Overview 페이지에서이 작업을 수행하는 방법을 찾을 수 있습니다.

+0

올바르지 않습니다. doubleclick 처리기가 전체 DataGrid에 대한 것이므로 동일한 동작입니다. –