2012-06-05 96 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標準列不允許你改變提交邏輯。