我正在處理WPF DataGrid。當我開始編輯新行時,我需要它顯示新項目的空行。我想要這樣做,因爲有時用戶只是在沒有完成行的信息的情況下單擊數據網格之外。DataGrid不顯示新項目的行
我試過的一個解決方案是在網格失去焦點時提交行更改,但事件有點不對,因爲它失去了對內部任何控件的焦點。
如何在數據網格失去焦點時提交行更改?
謝謝!
我正在處理WPF DataGrid。當我開始編輯新行時,我需要它顯示新項目的空行。我想要這樣做,因爲有時用戶只是在沒有完成行的信息的情況下單擊數據網格之外。DataGrid不顯示新項目的行
我試過的一個解決方案是在網格失去焦點時提交行更改,但事件有點不對,因爲它失去了對內部任何控件的焦點。
如何在數據網格失去焦點時提交行更改?
謝謝!
你可以看看this answer。細節是不同的,但基本上,它設置了一個行爲,當DataGrid失去焦點時提交更改。我能夠調整這一點來解決我遇到的問題。
我希望下面的代碼會有所幫助。
private void grdEmp_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
if (!isManualEditCommit)
{
isManualEditCommit = true;
DataGrid grid = (DataGrid)sender;
grid.CommitEdit(DataGridEditingUnit.Row, true);
isManualEditCommit = false;
}
}
在WPF數據網格中,新行被添加到項目源中,如果我們按回車不是嗎? –
是的,但如果我專注於網格以外的控件,該行仍處於編輯模式。所以,如果用戶想要插入一個新行,他將不得不在編輯模式下單擊該行,按回車鍵,然後關注新行。這是很多步驟要弄清楚的。 –
在某些情況下,基於誠實聚焦的WPF數據網格提交可能會令人惱火。如果進行預先驗證的驗證,它們會變得有點不合理。我記得回到使用「Enter」方法。這是很容易管理的。 –