2011-10-12 48 views
0

我正在處理WPF DataGrid。當我開始編輯新行時,我需要它顯示新項目的空行。我想要這樣做,因爲有時用戶只是在沒有完成行的信息的情況下單擊數據網格之外。DataGrid不顯示新項目的行

我試過的一個解決方案是在網格失去焦點時提交行更改,但事件有點不對,因爲它失去了對內部任何控件的焦點。

如何在數據網格失去焦點時提交行更改?

謝謝!

+0

在WPF數據網格中,新行被添加到項目源中,如果我們按回車不是嗎? –

+0

是的,但如果我專注於網格以外的控件,該行仍處於編輯模式。所以,如果用戶想要插入一個新行,他將不得不在編輯模式下單擊該行,按回車鍵,然後關注新行。這是很多步驟要弄清楚的。 –

+0

在某些情況下,基於誠實聚焦的WPF數據網格提交可能會令人惱火。如果進行預先驗證的驗證,它們會變得有點不合理。我記得回到使用「Enter」方法。這是很容易管理的。 –

回答

0

你可以看看this answer。細節是不同的,但基本上,它設置了一個行爲,當DataGrid失去焦點時提交更改。我能夠調整這一點來解決我遇到的問題。

1

我希望下面的代碼會有所幫助。

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