中的验证方法,
public interface IValidationRule{ ,,,string ValidationMessage {组,得到,,,} ,,,bool 检查(T 价值); }
public class IsNotNullOrEmptyRule,:, IValidationRule { ,,,public string ValidationMessage {组,得到,,,} ,,,public bool 检查(T 价值) ,,,{ ,,,,,,,if (value ==, null) ,,,,,,,{ ,,,,,,,,,,,return 假; ,,,,,,,} ,,,,,,,var str =, value as 字符串; ,,,,,,,return ! string.IsNullOrWhiteSpace (str); ,,,} }
public ValidatableObject用户名 { ,才能得到 ,,,{ ,,,,,,,return _userName; ,,,} ,,, ,,,{ ,,,,,,,=,_userName 价值; ,,,,,,,RaisePropertyChanged((),=祝辞,用户名); ,,,} }
private void AddValidations () { ,,,_userName.Validations.Add (new IsNotNullOrEmptyRule< string>, ,,,{, ,,,,,,,ValidationMessage =,“A username is 必需的。”, ,,,}); }
private bool ValidateUserName () { ,,,return _userName.Validate (); }
public bool 验证() { ,,,Errors.Clear (); ,,,IEnumerable, errors =_validations ,,,,,,,其中(v =祝辞,! v.Check(值)) ,,,,,,,.Select (v =祝辞,v.ValidationMessage); ,,,Errors =, errors.ToList (); ,,,IsValid =, ! Errors.Any (); ,,,return this.IsValid; }
请查看属性变化是的触发验证。
,,,,,,,& lt; OnPlatform x: TypeArguments=胺绺瘛? ,,,,,,,,,iOS=" {StaticResource EntryStyle} " ,,,,,,,,,Android=" {StaticResource EntryStyle} " ,,,,,,,,,WinPhone=" {StaticResource UwpEntryStyle} "/比; ,,,& lt;/Entry.Style> ,,,… & lt;/Entry>
请查看突出显示包含无效数据的控件。
& lt; Entry 文本=" {Binding UserName.Value,模式=TwoWay}”在 ,,,… ,,,& lt; Entry.Triggers> ,,,,,,,& lt; DataTrigger ,,,,,,,,,,,TargetType=叭肟凇? ,,,,,,,,,,,绑定=" {Binding UserName.IsValid} " null null null null null null null null在Xamarin.Forms企业应用程序中进行验证