0

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

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

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

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

这是图片

在此处输入图像描述

请帮忙

谢谢

4

1 回答 1

0

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

于 2012-06-05T16:43:57.800 回答