我正在使用MVVM创建一个对话框,提示用户输入指向KML文件的http:// URL。当URL格式正确时,“确定”按钮需要启用,而当URL格式不正确时,它需要被禁用。
现在,该按钮绑定到一个ICommand,CanExecute()方法的逻辑如下:
return !string.IsNullOrEmpty(CustomUrl);
命令的CanExecuteChanged事件在每次按键时都会被触发,目前它运行良好。
现在我想进行一些实际的验证。我所知道的唯一方法是如下所示:
try
{
var uri = new Uri(CustomUrl);
}
catch (UriFormatException)
{
return false;
}
return true;
这不太好,特别是因为每次按键时都会进行验证。我可以使URI在用户点击“OK”按钮时验证,但我不想这样做。有没有比捕获异常更好的验证URI的方法?
Uri.TryCreate
吗? - George Duckett