我有點新的WinForms數據綁定&自定義驗證。數據綁定到模型,使用自定義驗證屬性 - 何時綁定和驗證?
說我有我的域中一個簡單的模型:
public class SecurityObject
{
[StringLength(25)]
public string Name { get; set; }
public bool HasAccess { get; set; }
}
Name屬性是數據綁定到一個文本框。我想要應用自定義屬性驗證,以便在違反驗證時顯示工具提示。 (注:是的,我知道我可以在文本框中設置MaximumLength屬性,並計劃,但這不是我現在的問題。)
我的問題是,應該在什麼時候觸發驗證?
似乎並不像它可以在TextBox_Validating(..)被觸發,因爲在這一點上,新的價值還沒有蜜蜂寫回模型。
它可能會在TextBox_Validated(..)處被觸發,因爲當時值已被寫回模型。然而這看起來不合適,因爲TextBox認爲它是有效的,而它綁定的模型不是 - 對我來說似乎很腥。
我想你可以禁用自動綁定,然後通過調用DataBinding.WriteValue(...)在TextBox_Validating(...)中手動觸發它 - 但這似乎是一個恥辱,去做這麼多額外的努力和失敗一半是數據綁定點。
那麼,在數據綁定時運行模型驗證的推薦方法是什麼?
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
好的謝謝。下次還會記得 –