В моем приложении SL4 есть класс, представляющий одну сущность, о которой пользователь вводит данные. Я делаю проверку данных следующим образом:
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
?