我有数据网格和一个面板。当我点击任何一行时,所有数据都应出现在该面板上。当我编辑单元格并在编辑后如果单击同一行的另一个单元格,则应立即更新面板。我的数据网格通过项目源(数据表)绑定,因此如果我对网格进行任何更改(添加/删除/编辑),我的项目源将更新,并根据项目源面板进行更新。
为了实现单元格编辑,我使用以下代码并且它正在工作。
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的更改会显示在面板上。当我点击同一行的另一个单元格而不再重新加载行时,我想实现它。
这是图像
请帮忙
由于
答案 0 :(得分:0)
这是DataGrid的常见缺陷:提交逻辑。我找到的解决方案(它是布尔值,而不是数字)是我自己的自定义DataGridColumn,我在PropertyChanged上设置了绑定触发器,让内容立即更新,而不仅仅是在提交时。当然这是一个小工作,但DataGrid标准列将不允许您更改该提交逻辑。