0

我通过折叠一个 DataGrid 中的一些行并使它们在另一个 DataGrid 中可见,在 2 个 DataGrids 之间共享一个项目集合。

这工作正常,除了错误,如果用户在 DataGrid 之一中按 Ctrl+a 然后按 Del,另一个的内容也会被删除。

我想更改此行为,以便实际删除发生删除的 DataGrid 中可见的项目。

我怎么做?

4

2 回答 2

0

可以抑制一个解决方案Ctrl+A

void DataGridView_KeyDown( object sender, KeyEventArgs e ) {
    if ( e.Modifiers == Keys.Control && e.KeyCode ==  Keys.A ) 
        e.SuppressKeyPress = true;
}
于 2012-08-19T19:12:45.883 回答
0

您可能需要挂钩CollectionChanged事件并检查以确保正在删除的 OldItems 可见。如果没有,请将它们重新添加。

这感觉不是一种很好的做事方式。你能不能以某种方式用两个“视图”来包装你的原始集合(我不是指 MVVM 中的“视图”)?是双向绑定吗?

于 2012-08-19T19:03:48.843 回答