2010-10-13 29 views
0

問候,WPF驗證「之前」設置值或發出命令

我對WPF比較新,並且有與DataGrid控件驗證有關的問題。我已閱讀這篇文章(http://msdn.microsoft.com/en-us/magazine/ff714593.aspx),其中涵蓋了三種不同的驗證方法,但他們似乎都沒有解決如何防止設置值或調用在執行所有驗證之前執行undo/redo命令。

我想確保只有正數可以輸入到單元格中。我已經設置了一個驗證規則,用於檢查單元格是否包含負數,並處理DataGrid的CellEditEnding事件以知道何時實際更改模型圖層中使用的數字。問題是CellEditEnding在驗證規則之前被調用。在驗證規則發現問題時,模型中的數字已被設置。我需要的是CellEditEnded,但是看起來這個事件只存在於DataGrid的Silvelight版本中。

任何想法?

謝謝

回答

0

datagrid是一個棘手的,並且非常複雜。我想在這種情況下,我可能會嘗試改變這個必然屬性的「setter」。如果用戶輸入無效值,則拋出異常。 datagrid支持顯示帶有驗證錯誤(紅色邊框)的無效單元格,以便用戶看到哪些單元格/行存在問題。

這並不理想,但它可能會奏效。