0

我有一個TextBox,其值在被分析爲int後傳遞給對象中的int屬性。.NET WinForms和企業庫驗證應用程序塊

當我使用ValidationProvider時,驗證時將忽略此轉換步驟,並且出現錯誤,告訴我無法將字符串保存到int32。

我可以通過在我的對象中創建一個字符串屬性來解決此問題,該屬性充當表單中的文本框值和業務對象中的int值之間的橋樑,但我不喜歡這種方法,因爲它需要將我的域對象更改爲請驗證層。

如何在轉換後將其值存儲爲int的文本框在不創建域對象中的橋屬性的情況下進行驗證?

回答

1

我找到了解決方案。

字符串到整數轉換是自動進行的,但如果文本框留空,它會失敗。

我使用了ValidationProvider的ValueConvert處理程序來解決這個問題,但我確信這是某種錯誤。

編輯:ValueConvert事件不會觸發,除非在屬性中有一個Validator。當需要輸入轉換時,使用[ObjectValidator]作爲虛擬元素來觸發ValueConvert事件。

0

另一個「更好」的解決方案是將TypeConversionValidator添加到我的屬性中。

實施例特性:[TypeConversionValidator(typeof運算(INT))]

編輯:忽略此。它不符合我的預期。