【问题标题】:How to prevent collapsed DataGrid rows from being deleted?如何防止折叠的 DataGrid 行被删除?
【发布时间】:2012-08-19 18:46:41
【问题描述】:

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

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

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

我该怎么做?

【问题讨论】:

    标签: c# wpf xaml datagrid


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我可以用 2 个集合做到这一点。但是用一个集合来做这件事似乎更优雅。我认为,必须有一种 WPF 方式来做到这一点
    【解决方案2】:

    一个解决方案可能是抑制 Ctrl+A:

    void DataGridView_KeyDown( object sender, KeyEventArgs e ) {
        if ( e.Modifiers == Keys.Control && e.KeyCode ==  Keys.A ) 
            e.SuppressKeyPress = true;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-31
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多