【问题标题】:WPF Data Grid Cell Changed Get previous value and current valueWPF Datagrid Cell Change 获取先前值和当前值
【发布时间】:2014-03-06 00:01:14
【问题描述】:

如果单元格中发生更改,我正在尝试更新网格。

看起来很简单,这是怎么做到的?

这是我的代码:

private void report_datagrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
    {
        bool update = false;
        if (e.RemovedCells.Count > 0)
        {
            if (e.AddedCells.Count > 0)
            {
                var res = (Researcher)((DataGrid)sender).SelectedItem;
            }
        }
        e = null;
        if (update)
            UpdateGrid();
    }

我认为删除的单元格和添加的单元格具有旧值和新值,但事实并非如此。它实际上显示了不同的行。我需要比较旧值,运行存储过程,然后基本上更新网格。一切都被我无法区分的事实所阻碍。

【问题讨论】:

    标签: wpf datagrid event-handling


    【解决方案1】:

    SelectedCellsChanged 仅在 selection 更改时触发,而不是在单元格中的数据更改时触发,因此不会帮助您进行比较。添加/删除的单元格是那些被选中和取消选中的单元格,不考虑值的变化。

    实现这一点的“正确”方法(实际上可能是最简单的)是将行绑定到对象(将单元格绑定到属性),然后在 setter 中执行存储的过程,它确实可以访问旧的值.. 请参阅我对类似问题的回答 here

    如果您需要对该答案的解释或一些示例代码,我很乐意提供,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多