2012-02-22 56 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固定这一点。