2011-08-02 83 views
3

我有一個使用包含數據網格的用戶控件的視圖。對視圖的要求規定,如果用戶從「客戶名稱」列中刪除值然後離開單元格,請不要提交編輯並將值更改回其原始值 - 即不允許空白客戶名稱。用戶控件是共享代碼,用於多個應用程序之間。編輯取消要求專門針對上述視圖(並非所有使用usercontrol的應用程序)。如何檢測客戶名稱單元格的值是否已刪除,如果值爲空則取消編輯?如何取消datagrid編輯

回答

4

您可以處理CellEditEnding - 它發生在提交或取消單元格編輯之前。在這裏,您可以驗證單元格的當前值,如果滿足條件[s],則可以執行任何您想要的操作。 MSDN


編輯: 它我的建議,但我不能批准。 您可以通過e.Row.Item獲得新的價值,並將其投射到DataGrid的對象上。 另一種方法是鑄造sender對象獲取新單元格值的方法。

+1是DataGridCellEditEndingEventArgs.EditingElement。它的FrameworkElement,我想你知道它是什麼(可能是TextBox,或其他)。

也我想你知道你該做什麼!

+0

是的,這是我的代碼將去的地方。問題是,我不知道最近輸入的單元格的值,因爲提交沒有發生。我可以獲得「舊」價值 - 即剛剛被刪除的價值,但我不知道用戶試圖改變它的價值。我認爲在CellEditEnding事件中,我需要深入到單元格內的文本框並查看其文本屬性,以查看用戶試圖將其更改爲的內容。不知道我會怎麼做,但。 – ihatemash

+0

看看答案編輯 – stukselbax