WPF IPAddress依赖属性
我已经创建了一个名为LocalippProperty的依赖属性,作为字符串依赖属性。一切都很好,但当我后来在应用程序中使用UserControl并将LocalIPProperty更改为VS属性窗口中的非IP文本时,VS属性窗口将显示默认IP字符串(127.0.0.1),并在XAML中添加:LocalIP=“sdahashfah”,然后当我尝试运行应用程序时,会得到XalmParserException 我还试图简单地创建LocalIPProperty作为IPAddress依赖属性,但在使用UserControl的应用程序中,我无法更改IPAddress 我想要的是,当我在VS属性窗口中将LocalIP设置为非IP字符串时,该值保持不变 我现在得到的是:WPF IPAddress依赖属性,wpf,user-controls,dependency-properties,Wpf,User Controls,Dependency Properties,我已经创建了一个名为LocalippProperty的依赖属性,作为字符串依赖属性。一切都很好,但当我后来在应用程序中使用UserControl并将LocalIPProperty更改为VS属性窗口中的非IP文本时,VS属性窗口将显示默认IP字符串(127.0.0.1),并在XAML中添加:LocalIP=“sdahashfah”,然后当我尝试运行应用程序时,会得到XalmParserException 我还试图简单地创建LocalIPProperty作为IPAddress依赖属性,但在使用Use
public static DependencyProperty LocalIPProperty = DependencyProperty.
Register("LocalIP", typeof(string), typeof(UserControl1),
new FrameworkPropertyMetadata("127.0.0.1"), IPPropertyValidate);
private static bool IPPropertyValidate(object value)
{
try
{
IPAddress.Parse((string)value);
}
catch { return false; }
return true;
}
[Description("IP for listening."), Category("Address")]
public string LocalIP
{
get { return (string)GetValue(LocalIPProperty); }
set { SetValue(LocalIPProperty, value); }
}
感谢您的努力。听起来像是VS编辑器中的一个bug。它似乎试图设置您输入的无效属性值,但不知道从验证中返回假值时该怎么办。它可能试图将其设置为在运行时忽略的设计时值,但没有输出正确的语法