我正在使用 MVVM 创建一个对话框,它会提示用户输入 KML 文件的 http://URL。当 URL 格式正确时需要启用“确定”按钮,当 URL 格式不正确时需要禁用它。
现在按钮绑定(bind)到 ICommand,CanExecute() 的逻辑如下所示:
return !string.IsNullOrEmpty(CustomUrl);
每次击键都会引发命令的 CanExecuteChanged 事件,到目前为止它运行良好。
现在我想做一些实际的验证。我知道的唯一方法如下:
try
{
var uri = new Uri(CustomUrl);
}
catch (UriFormatException)
{
return false;
}
return true;
这不是什么好事,尤其是因为验证是在每次击键时发生的。我可以做到这一点,以便在用户点击 OK 按钮时验证 URI,但我宁愿不这样做。除了捕获异常之外,是否有更好的方法来验证 URI?
最佳答案
是的 - 您可以使用静态方法 Uri.IsWellFormedUriString
为此
return Uri.IsWellFormedUriString (CustomUrl, UriKind.Absolute);
关于c# - 让用户输入格式正确的 URL 的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881036/