WPF4数据网格删除RowDetailsTemplate';s数据网格

WPF4数据网格删除RowDetailsTemplate';s数据网格,wpf,datagrid,rowdetailstemplate,Wpf,Datagrid,Rowdetailstemplate,我有一个WPF4 DataGrid控件,它的RowDetailsTemplate中包含另一个DataGrid控件。我在DataGrid控件和监视器上都添加了PreviewKeyDown事件,它们都是键盘操作。 如果按键盘上的Delete键,我将删除DataGrid控件中的SelectedItems。 我的问题是当我想删除RowDetailsTemplateDataGrid控件中的一行时。事件已路由,父数据网格中定义RowDetailsTemplate的行也已删除。我知道这是因为RouteEven

我有一个WPF4 DataGrid控件,它的RowDetailsTemplate中包含另一个DataGrid控件。我在DataGrid控件和监视器上都添加了PreviewKeyDown事件,它们都是键盘操作。 如果按键盘上的Delete键,我将删除DataGrid控件中的SelectedItems。 我的问题是当我想删除RowDetailsTemplateDataGrid控件中的一行时。事件已路由,父数据网格中定义RowDetailsTemplate的行也已删除。我知道这是因为RouteEvent.RoutingStrategy设置。 但是我怎么能只删除RowDetailsTemplateDataGrid中的行呢?
谢谢。

只需向嵌套的数据网格添加一个附加行为即可。这样它就不会再冒泡删除的事件了。

我为我的应用程序找到了一个临时解决方案。我使用OriginalSource查找按下delete按钮的DataGridCell,然后通过WPF VisualTree查找包含DataGridCell的DataGridControl。之后,我检查DataGrid.Name,如果事件发送者的名称相同,那么它就是我需要使用的正确的事件处理程序。否则,让事件路由器转到下一个元素。