【Silverlight】 カスタム検証属性を作成するには

◆検証属性(数値チェック)

using System;
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;

namespace Validations.ValidationAttributes
{
  [AttributeUsage(AttributeTargets.Property
    , AllowMultiple = true, Inherited = true)]
  public class NumberStringAttribute : ValidationAttribute
  {
    public NumberStringAttribute()
    {
        // エラーメッセージ
      this.ErrorMessage = "{0}は数値文字を入力してください。";
    }

    protected override ValidationResult IsValid
      (object value, ValidationContext validationContext)
    {
      if (value.ToString().Length == 0)
        return ValidationResult.Success;

      // 数値チェック
      if (new Regex("^([0-9])*$").IsMatch(value.ToString() ))
        return ValidationResult.Success;
      else
        return new ValidationResult(string.Empty);
    }    
  }
}

◆使用例(プロパティに NumberStringAttribute を適用)

[NumberString()]
public string Age
{
  get { return Model.Age; }
  set
  {
    Model.Age = value;
    this.RaisePropertyChanged(() => Age);
  }
}

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中