2013-02-11 2 views
0

LocalIPProperty라는 종속성 속성을 문자열 종속성 속성으로 만들었습니다. 모두 좋지만 나중에 응용 프로그램에서 UserControl을 사용하고 해당 LocalIPProperty를 VS 속성 창에서 비 IP 텍스트로 변경하면 VS 속성 창에 기본 IP 문자열 (127.0.0.1)이 표시되고 XAML에 다음과 같이 추가됩니다. LocalIP = "sdahashfah"그리고 나서 XalmParserException을 얻습니다.WPF IPAddress 종속성 속성

또한 LocalIPProperty를 IPAddress 종속성 속성으로 만 만들려고했으나 UserControl 응용 프로그램에서는 IPAddress를 변경할 수 없습니다.

내가 원하는 것은 LocalIP를 VS 속성 창에서 비 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 편집기의 버그와 비슷합니다. 당신이 넣는 잘못된 속성 값을 설정하려하지만 유효성 검사에서 거짓 값을 얻었을 때 무엇을해야할지 모르는 것 같습니다. 그것은 런타임에 무시되지만 올바른 구문을 출력하지 않도록 디자인 시간 값으로 설정하려고 시도했을 수 있습니다.