0

文字列依存関係プロパティとしてLocalIPPropertyという依存関係プロパティを作成しました。すべて問題ありませんが、後でアプリケーションでUserControlを使用し、VSプロパティウィンドウでそのLocalIPPropertyを非IPテキストに変更すると、VSプロパティウィンドウにデフォルトのIP文字列(127.0.0.1)が表示され、XAMLでは:LocalIP=が追加されます。 「sdahashfah」とすると、アプリケーションを実行しようとすると、XalmParserExceptionが発生します。

また、LocalIPPropertyをIPAddress Dependencyプロパティとして作成しようとしましたが、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); }
        }

努力してくれてありがとう。

4

1 に答える 1

1

VSエディターのバグのように聞こえます。入力している無効なプロパティ値を設定しようとしているようですが、検証から誤った値を返したときにどうすればよいかわかりません。実行時に無視される設計時の値として設定しようとしている可能性がありますが、正しい構文を出力していません。

于 2013-02-11T22:05:15.460 に答える