2012-02-22 89 views
4

我有一個WPF DataGrid有RowDetailsTemplate中聲明的另一個數據網格;停止CTRL-點擊從影響父DataGrid

<DataGrid name="dataGrid1" RowDetailsVisibilityMode="VisibleWhenSelected"> 
    ... 
    <DataGrid.RowDetailsTemplate> 
    <DataTemplate> 
     <DataGrid name="dataGrid2"> 
     ... 
     </DataGrid/> 
    </DataTemplate> 
    </DataGrid.RowDetailsTemplate> 
</DataGrid> 

當我CTRL - 單擊子DataGrid一行時,它取消選擇父DataGrid的SelectedItem和隱藏RowDetailsTemplate

我認爲這是某種路由事件行爲,但我試圖在數據網格上捕獲MouseDown/LeftButtonMouseDown,但未觸發任何事件。我還在子數據網格上捕獲了SelectedItemChanged事件並設置了e.Handled = true;,但事件仍在父級上觸發。

如何停止父數據網格取消選擇時CTRL - 單擊一個子DataGridRow?

回答

2

處子控制捕撈PreviewMouseLeftButtonDown,設置e.Handled = truedataGridRow.IsSelected = !dataGridRow.IsSelected固定這一點。