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編輯器中的錯誤。它看起來像試圖設置你正在放入的無效屬性值,但當它從驗證中取回一個錯誤的值時不知道該怎麼做。它可能試圖將其設置爲在運行時忽略的設計時間值,但不會輸出正確的語法。