3

私のアプリケーションでは、「DataAnnotations」とともに「validatesonnotifydataerrors」を使用しているため、編集中のフィールドが空であるか、間違ったデータがある場合などにユーザーに警告が表示されます。ビューが表示されると、すべてのテキストボックスが空であるため、警告が表示されています。私がやりたいことは、ユーザーがそのフィールドに間違ったデータを入力し始めたとき、またはデータを削除してフィールドが空になったときにのみ警告を表示することです。

これが私の TextBoxes の 1 つの xaml です。

    <TextBox Text="{Binding Path=AttributeName, UpdateSourceTrigger=PropertyChanged, ValidatesOnNotifyDataErrors=true}" />

バッキング プロパティは次のとおりです。

    private string _attributeName;
    [StringLength(128)]
    [Required(ErrorMessage = "Field cannot be blank")]
    public string AttributeName
    {
        get { return _attributeName; }
        set
        {
            _attributeName = value;
            IsDirty = true;
            OnPropertyChanged("AttributeName");
        }
    }

このフレームワークで私がやりたいことは可能ですか?

4

1 に答える 1

2

テキストボックスにすぐに検証を表示させたくない場合は、; を削除します。

[Required(ErrorMessage = "Field cannot be blank")]

次に、次のように代わりに正規表現を含めます。

[RegularExpression(@"^[a-zA-Z''-'\s]{1,128}$", ErrorMessage = "AttributeName must contain no more then 128 characters and contain no digits.")]
public string AttributeName
{
    get { return _attributeName; }
    set
    {
        _attributeName = value;
        IsDirty = true;
        OnPropertyChanged("AttributeName");
    }
}

次に、正規表現内で特定の側面を追加または削除して、テキストボックスに数字や記号などを許可しないようにすることができます.

お気づきのように、含める文字列の範囲を追加できます{1,128}(1 文字から 128 までを取り込み、その後はテキスト ボックスに赤く表示されます)。理論的には、[StringLength(128)]また。

データ注釈/属性検証の詳細については、このリンクを参照してください。また、このリンクも見てください

お役に立てれば :)。

于 2013-05-16T10:12:04.723 に答える