サーチ…


前書き

mvc.netは、モデル検証のためのデータアノテーションを導入しています。これはXamarinでも行うことができます

簡単な例

ナゲットパッケージSystem.ComponentModel.Annotations追加する

クラスを定義する:

public class BankAccount  
{  

   public enum AccountType  
   {  
       Saving,  
       Current  
   }  

   [Required(ErrorMessage="First Name Required")]  
   [MaxLength(15,ErrorMessage="First Name should not more than 1`5 character")]  
   [MinLength(3,ErrorMessage="First Name should be more than 3 character")]  
   public string AccountHolderFirstName { get; set; }  

   [Required(ErrorMessage="Last Name Required")]  
   [MaxLength(15,ErrorMessage="Last Name should not more than 1`5 character")]  
   [MinLength(3,ErrorMessage="Last Name should be more than 3 character")]  
   public string AccountHolderLastName { get; set; }  

   [Required]  
   [RegularExpression("^[0-9]+$", ErrorMessage = "Only Number allowed in AccountNumber")]  
   public string AccountNumber { get; set; }  

   public AccountType AcType { get; set; }  
}

バリデータを定義する:

public class GenericValidator   
{  
    public static bool TryValidate(object obj, out ICollection<ValidationResult> results)  
    {  
        var context = new ValidationContext(obj, serviceProvider: null, items: null);  
        results = new List<ValidationResult>();  
        return Validator.TryValidateObject(  
            obj, context, results,  
            validateAllProperties: true  
        );  
    }  
}

バリデーターを使用してください:

var bankAccount = new BankAccount();  
ICollection<ValidationResult> lstvalidationResult;  

bool valid = GenericValidator.TryValidate(bankAccount, out lstvalidationResult);  
if (!valid)  
{  
    foreach (ValidationResult res in lstvalidationResult)  
    {  
        Console.WriteLine(res.MemberNames +":"+ res.ErrorMessage);  
    }  
      
}  
Console.ReadLine();

生成された出力:

First Name Required
Last Name Required
The AccountNumber field is required.


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow