2012-06-05 68 views
0

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

要实现细胞编辑的事情,我使用下面的代码,它的工作。

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

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

下面是图片

enter image description here

请帮助

感谢

回答

0

这是DataGrid的一个常见的错误:提交逻辑。我找到的解决方案(它是布尔值,而不是数字)是使我自己的自定义DataGridColumn,与我在PropertyChanged上设置的绑定触发器,一次更新内容,而不仅仅是提交。当然这是一个小工作,但DataGrid标准列不允许你改变提交逻辑。