2013-02-11 173 views
0

我创建了一个名为LocalIPProperty的依赖属性作为字符串依赖项属性。一切都很好,但是当我之后在应用程序中使用UserControl并在VS属性窗口中将该LocalIPProperty更改为非IP文本时,VS属性窗口显示默认IP字符串(127.0.0.1),并在它添加的XAML中:LocalIP = “sdahashfah”然后当我尝试运行应用程序时,我得到XalmParserException。WPF IPAddress依赖属性

我也试过只是简单地创建LocalIPProperty作为IPAddress的依赖属性,但在与UserControl的应用程序中,我不改变IPAddress。

我想要的是,当我在VS属性窗口中将LocalIP设置为非IP字符串时,值保持不变。

我现在拥有的是:

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); } 
     } 

感谢您的任何努力。

回答

1

听起来像在VS编辑器中的错误。它看起来像试图设置你正在放入的无效属性值,但当它从验证中取回一个错误的值时不知道该怎么做。它可能试图将其设置为在运行时忽略的设计时间值,但不会输出正确的语法。