Silverlight数据网格已经结束

本文关键字:结束 网格 数据 数据网 Silverlight | 更新日期: 2023-09-27 18:16:33

在cellledit结束时,我想只在值改变时触发方法

我有一些可编辑的列,我想只在值已经改变时才触发方法

DataGridCellEditEndedEventArgs属性e.EditAction总是返回已提交

Silverlight数据网格已经结束

可以监听DataGrid。准备cellforedit事件(或者可能是DataGrid。BeginningEdit(但我不是100%肯定),并在该点存储单元格的值。

然后不是听DataGrid.CellEditEnded,而是听DataGrid.CellEditEnding。这个事件是专门为您提供取消编辑的选项而设计的,因此它不会被视为提交。datagridcellleditendingeventargs为它提供了一个Cancel bool属性。检查新值是否与旧值一致,如果一致,将"Cancel"属性设置为"true"。当CellEditEnded事件触发时,它的EditAction将是Cancel

void MyGrid_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs args)
{
    //store current value
}
void MyGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs args)
{
    //check if values are the same
    if (valuesAreSame)
        args.Cancel = true;
}