2010-02-03 44 views
0

我有一個WPF DataGrid。我想限制用戶可以在特定列中輸入的值,如下所示:如何在驗證WPF DataGrid單元格條目時使用以前的值?

列A值可能只會增加(新值>舊值)。

B列值可能只會減少(新值<舊值)。

如果用戶輸入的值無效,我想恢復到以前的有效值。

我認爲我可以在自定義ValidationRule中做到這一點,但我沒有看到從Validate()函數訪問單元格的前一個值的方法。

我將不勝感激任何幫助!

回答

0

您需要在業務層中執行此邏輯。確保你沒有UpdateSourceTrigger設置爲PropertyChanged,因爲這會更新每個按鍵的值。如果值爲9,用戶鍵入10,則更新將在用戶鍵入1時發生,小於9將重置爲9.

更好的解決方案是將該字段標記爲無效(如果if你綁定到一個對象)並向用戶顯示該條目是無效的,而不僅僅是改變他們剛剛輸入的內容。有時候只有一個字母,他們可能只是想改變它,使輸入有效。

+0

感謝您的建議,阿蘭。你能指引我說任何文檔都說這種類型的邏輯應該在用戶界面下的域對象中處理,而不是由用戶界面本身處理?我的客戶確定用戶輸入的驗證應發生在UI層。謝謝! – DTayntor 2010-03-01 21:16:00

相關問題