如果在单元格中进行了更改,我正在尝试更新网格。
看似简单,这是怎么做到的?
这是我的代码:
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();
}
我认为删除了单元格并添加了单元格具有旧值和新值但它没有。它实际上显示了不同的行。我需要比较旧值,运行存储过程,然后基本上更新网格。一切都被我无法区分的事实所阻碍。
答案 0 :(得分:0)
SelectedCellsChanged仅在选择更改时被触发,而不是在单元格中的数据发生更改时触发,因此无法帮助您进行比较。添加/删除的单元格是被选中和取消选择的单元格,不考虑值的变化。
完成此操作的“正确”方法(实际上可能是最简单的)是将行绑定到对象(以及将单元格绑定到属性),然后在setter中执行存储过程,该setter可以访问旧的值..请参阅我对类似问题的回答here。
如果您需要对该答案的解释或一些示例代码,我很乐意提供,请告诉我。