예제 #1
0
파일: Unity.cs 프로젝트: qwdingyu/C-
        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);
        }
예제 #2
0
파일: Unity.cs 프로젝트: qwdingyu/C-
        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);
            }
        }
예제 #3
0
파일: Unity.cs 프로젝트: qwdingyu/C-
        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);
        }