0

例外ベースのデータ検証を実行する Silverlight フォームがあります。このデータ検証を次の方法で行う方法を学びました。

次のように、検証するコントロールを設定します。

<TextBox Text="{Binding Mode=TwoWay,NotifyOnValidationError=True, Source={StaticResource docSan}, Path= metadati.paziente.residenza, ValidatesOnExceptions=True}"/>

ターゲットプロパティを次のように機能させます

public new string residenza
    {
        get { return base.residenza; }
        set
        {
            if (string.IsNullOrEmpty(value)) throw new ArgumentNullException("value");
            base.residenza = value;
        }
    }

INotifyPropertyChanged基本クラスが何らかの方法で非検証プロパティを定義する場所

残念ながら、設計時にVS2010は各テキストボックスの例外について警告します。これは、アプリケーションの実行を妨げるものではありません (問題なく動作します) が、単に面倒です。

設計時に値が指定されていないため、コードが自然にスローされても問題ないことをVSに伝える方法を誰かが知っていますか?

4

1 に答える 1

1

私が正しく理解していればif ... throw、デザイナーで警告を引き起こすのはセッターのステートメントですか?

DesignerProperties.IsInDesignToolを使用して、この行が設計時に実行されないようにすることができると思います。

set
{
    if (!System.ComponentModel.DesignerProperties.IsInDesignTool)
    {
        if (string.IsNullOrEmpty(value)) throw new ArgumentNullException("value");
    }
    base.residenza = value;
}
于 2012-07-01T18:41:37.863 に答える