2013-08-29 147 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處理程序,而不是(只是暫時的),你會看到,滾動做火處理的。

您仍然可以轉換事件爲Command在自己的自定義Attached Property。他們創建起來相對簡單,您可以從MSDN的Attached Properties Overview頁面找到如何做到這一點。

+0

這是不正確的。這是相同的行爲,因爲doubleclick處理程序是針對整個數據網格的。 –