c# - 让用户输入格式正确的 URL 的最佳方式?

标签 c# .net wpf user-interface validation

我正在使用 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/

相关文章:

c# - 如何使用 OWIN 身份验证获取登录用户?

C# Windows 服务启动速度不够快

c# - 2 个匹配集合到 1 个列表

c# - 基于另一个组合框的所选项目绑定(bind)组合框 - MVVM WPF

c# - Wpf: 在 Listview 中隐藏 GridViewColumn

c# - 如果 float 为零且采用特定货币格式,如何将小数转换为不带部分的字符串?

c# - 如何将 ListBox 绑定(bind)到 XML 文件中的对象列表?

.net - ..ActiveDirectory.ActiveDirectorySite.getComputerSite().name 返回错误 : ActiveDirectoryObjectNotFoundException

.net - Cosmos DB : Collection exists, 但抛出 410 GONE httpstatus 代码

wpf - FindFirst 始终返回 null AutomationElement