WPF CellEditing问题 - 重新加载datagrid行

时间:2012-06-05 14:44:12

标签: wpf celleditingtemplate

我有数据网格和一个面板。当我点击任何一行时,所有数据都应出现在该面板上。当我编辑单元格并在编辑后如果单击同一行的另一个单元格,则应立即更新面板。我的数据网格通过项目源(数据表)绑定,因此如果我对网格进行任何更改(添加/删除/编辑),我的项目源将更新,并根据项目源面板进行更新。

为了实现单元格编辑,我使用以下代码并且它正在工作。

void DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
    {
        if (!isManualEditCommit)
        {
            isManualEditCommit = true;
            DataGrid grid = (DataGrid)sender;
            grid.CommitEdit(DataGridEditingUnit.Row, true);
            isManualEditCommit = false;           
        }
    }

问题:唯一的问题是当这一行被调用时(grid.CommitEdit),它基本上再次加载所有行。如果datatable真的很大,那么加载所有行需要几秒钟。如果我没有提交网格,那么在点击另一行后,我对datagrid的更改会显示在面板上。当我点击同一行的另一个单元格而不再重新加载行时,我想实现它。

这是图像

enter image description here

请帮忙

由于

1 个答案:

答案 0 :(得分:0)

这是DataGrid的常见缺陷:提交逻辑。我找到的解决方案(它是布尔值,而不是数字)是我自己的自定义DataGridColumn,我在PropertyChanged上设置了绑定触发器,让内容立即更新,而不仅仅是在提交时。当然这是一个小工作,但DataGrid标准列将不允许您更改该提交逻辑。