我在我的SL4應用程序中有一個類,代表用戶輸入數據的單個實體。我正在做數據驗證如下:Silverlight:在驗證錯誤時禁用按鈕? (麻煩驗證)
private double cost;
public string Cost
{
get
{
return String.Format("{0}{1}", DOLLAR_SYMBOL, cost);
}
set
{
string price = getPriceFromCost(value);
if (!double.TryParse(price, out cost))
{
throw new ArgumentException("Please enter a number.");
}
OnPropertyChanged("Cost");
}
}
這很好。但是,如果用戶輸入一個有效值,然後是無效值,忽略驗證錯誤並點擊提交,則將使用舊的有效值創建實體。我寧願強迫用戶糾正錯誤。我怎樣才能禁用「添加」按鈕?
另外,我想在用戶點擊添加按鈕時進行一些其他形式的驗證,但我仍然希望文本輸入框的高亮效果以紅色突出顯示,並彈出消息。我怎樣才能做到這一點而不扔ArgumentExceptions
?
右鍵定義IsEnabled屬性,但不會我需要爲每個驗證領域的布爾? 「IsValidName」,「IsValidDate」等。如果用戶未能設置「Date」的輸入,我不想再次啓用按鈕,直到對該字段提供有效輸入。 – 2010-10-03 17:08:11
這是一個非常有用的博客文章。我在我的數據實體類的幾個屬性中添加了[[必需]]。但是,前端沒有任何事情發生。我怎樣才能使這個驗證發生? – 2010-10-03 17:16:05