public void AddValidater(Control control, IValidater validater, string errorTip, string property) { ValidaterInfo info; Type objtype = control.GetType(); PropertyInfo defproperty; defproperty = objtype.GetProperty(property); info = new ValidaterInfo(defproperty, validater, errorTip); mValidaters.Add(control, info); control.Validating += new System.ComponentModel.CancelEventHandler(onValidateing); }
private void onValidateing(object source, System.ComponentModel.CancelEventArgs e) { ValidaterInfo info = mValidaters[(Control)source]; object value = info.Property.GetValue(source, null); bool isVali = info.Validater.Validating(value); if (!isVali) { mErrorTip.SetError((Control)source, info.Message); } else { mErrorTip.SetError((Control)source, null); } }
public bool IsVali() { mErrorTip.Clear(); bool isVali = true; bool AllVali = true; foreach (Control item in mValidaters.Keys) { ValidaterInfo info = mValidaters[item]; object value = info.Property.GetValue(item, null); isVali = info.Validater.Validating(value); if (!isVali) { mErrorTip.SetError(item, info.Message); } if (!isVali) { AllVali = isVali; } } return(AllVali); }