日期:2014-05-19  浏览次数:20710 次

DataGrid 中的cell 事件问题(dataGrid 和 dataTable 不同步)
DataGrid   中的cell   事件问题(dataGrid   和   dataTable   不同步)

请问   :


  我在   DataGrid中   的   一列上   加了一个事件,然后改变这个cell的值   但是   改好以后在datagrid中   并不是马上反修改的值。  
需要   以下代码    
  DataRow   _DataRow   =   _DataTable.Rows[dgPz.CurrentCell.RowNumber];
  _DataRow.EndEdit();

才能   实现即时修改。  

    不过   在DataGrid   的新建   行中   执行这个事件   此时或报错   。因为   因为这个时候   datatable   中还没有这条记录。   错误显示   “table[X]   错误”

请问   如何解决这个   datagrid   和   datatable   之间不同步的   问题。谢谢


------解决方案--------------------
觉得问题有点点模糊,在以前的经验来说没有像你这样的情况,可能你写的事件引发的时候不合适吧.
------解决方案--------------------
這里有問題﹕
DataRow _DataRow = _DataTable.Rows[dgPz.CurrentCell.RowNumber];
====================

DataGrid綁定的是DataRowView而不是DataRow,過程是﹕
Grid得到焦點-> 編輯Grid單元格-> 結束編輯Grid單元格-> 更新對應的DataRowView-> 結束當前行的編輯(換行)﹐同時結束DataRowView的編輯

在DataGrid的新建行中是沒有對應的DataRow的,只有一個Add狀態的DataRowView,所以你只用處理DataRowView就可以了。
------解决方案--------------------
修改DataTable后马上重新绑定一下DataGrid不行吗