0
我有一個看起來像二傳手代碼
[IsNumericValidation]
[Range(0, 200)]
[Required]
public override int Threshold
{
get
{
return this._threshold;
}
set
{
//removed some code
base.OnPropertyChanged("Threshold");
}
}
而在我的XAML我有
<TextBox Margin="10" Text="{Binding Threshold,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True }"
/>
我加了一個屬性當我在文本框中輸入一個數字值時,一切按預期工作(並且設置者中的斷點被命中)。
當我在非數值類型(如字母d
)斷點未命中。
我有一些額外的邏輯在我的二傳手,我也用ValidationAttribute
有我自己的驗證規則。
雖然我覺得一個選擇是改變類型,所以Threshold
是string
,這似乎hacky!
我只能假設斷點不打的原因是由於一些額外的誤差通過WPF檢查完成的,我的問題是,如果我的假設是正確的,我可以把它關閉這個控制?
啊......我明白了......所以,在這種情況下,我想選擇* *是有它的類型'string'並進行必要的轉換/鑄造的,當我需要 – MyDaftQuestions
嘛,你怎麼了期望「d」被作爲「int」屬性的輸入來處理?您可能希望使用類型轉換器來轉換'string'和'int'之間的所有有效值,反之亦然。如果您只想允許數字值,請使用驗證程序,在輸入無效時向用戶提供視覺反饋。 –
我期望如果用戶輸入'd',我寫的驗證控件就會啓動並通知用戶它是無效的......當然,值('d')必須存儲在某處(我猜屬性可能是'object'類型)。我沒有想到它通過那麼遠,我只關注*它沒有設置,而不是*爲什麼*它沒有設置。感謝您的明確回答 – MyDaftQuestions