Я создаю диалог с использованием MVVM, который предлагает пользователю ввести http: // URL-адрес файла KML. Кнопка «ОК» должна быть включена, когда URL-адрес имеет правильный формат, и ее необходимо отключить, если URL-адрес имеет неправильный формат.
Прямо сейчас кнопка привязана к ICommand, и логика для CanExecute () выглядит следующим образом:
return !string.IsNullOrEmpty(CustomUrl);
Событие команды CanExecuteChanged вызывается при каждом нажатии клавиши, и пока оно работает хорошо.
Теперь я хочу сделать небольшую проверку. Единственный известный мне способ сделать это так:
try
{
var uri = new Uri(CustomUrl);
}
catch (UriFormatException)
{
return false;
}
return true;
Это не буэно, тем более что проверка происходит при каждом нажатии клавиши. Я мог бы сделать так, чтобы URI проверялся, когда пользователь нажимал кнопку ОК, но я бы не хотел. Есть ли лучший способ проверки URI, кроме перехвата исключений?