public bool UpdateErrorProviderTextForProperty(string errorMessage, string propertyName)
        {
            if (string.IsNullOrEmpty(propertyName))
            {
                throw new ArgumentNullException("propertyName");
            }
            if (string.IsNullOrEmpty(errorMessage))
            {
                throw new ArgumentNullException("errorMessage");
            }
            bool    result = false;
            Binding bindingGivenPropertyName = this.GetBindingGivenPropertyName(propertyName);

            if (bindingGivenPropertyName != null)
            {
                ExchangeErrorProvider exchangeErrorProvider = this.enabledBindingSources[(BindingSource)bindingGivenPropertyName.DataSource];
                StringBuilder         stringBuilder         = new StringBuilder(exchangeErrorProvider.GetError(bindingGivenPropertyName.Control));
                if (stringBuilder.Length > 0)
                {
                    stringBuilder.AppendLine();
                }
                stringBuilder.Append(errorMessage);
                Control errorProviderAnchor = InputValidationProvider.GetErrorProviderAnchor(bindingGivenPropertyName.Control);
                exchangeErrorProvider.SetError(errorProviderAnchor, stringBuilder.ToString());
                result = true;
            }
            return(result);
        }
        public ExchangeErrorProvider GetErrorProvider(BindingSource bindingSource)
        {
            ExchangeErrorProvider result = null;

            this.enabledBindingSources.TryGetValue(bindingSource, out result);
            return(result);
        }
 public void SetEnabled(BindingSource bindingSource, bool enabled)
 {
     if (enabled != this.GetEnabled(bindingSource))
     {
         if (enabled)
         {
             ExchangeErrorProvider exchangeErrorProvider = new ExchangeErrorProvider(this.components);
             ((ISupportInitialize)exchangeErrorProvider).BeginInit();
             exchangeErrorProvider.BlinkStyle       = ErrorBlinkStyle.NeverBlink;
             exchangeErrorProvider.ContainerControl = this.ContainerControl;
             ((ISupportInitialize)exchangeErrorProvider).EndInit();
             this.enabledBindingSources.Add(bindingSource, exchangeErrorProvider);
             if (this.ContainerBindingContext != null)
             {
                 this.BindToBindingSource(bindingSource);
                 return;
             }
         }
         else
         {
             ExchangeErrorProvider exchangeErrorProvider2 = this.enabledBindingSources[bindingSource];
             this.components.Remove(exchangeErrorProvider2);
             exchangeErrorProvider2.Dispose();
             this.enabledBindingSources.Remove(bindingSource);
             if (this.ContainerBindingContext != null)
             {
                 this.UnbindFromBindingSource(bindingSource);
             }
         }
     }
 }
 public void SetUIValidationEnabled(ExchangeUserControl userControl, bool enabled)
 {
     if (enabled)
     {
         if (!this.validatingControls.ContainsKey(userControl))
         {
             ExchangeErrorProvider exchangeErrorProvider = new ExchangeErrorProvider(this.components);
             ((ISupportInitialize)exchangeErrorProvider).BeginInit();
             exchangeErrorProvider.BlinkStyle       = ErrorBlinkStyle.NeverBlink;
             exchangeErrorProvider.ContainerControl = this.ContainerControl;
             ((ISupportInitialize)exchangeErrorProvider).EndInit();
             this.validatingControls.Add(userControl, exchangeErrorProvider);
             userControl.ValidationErrorsChanging += this.UpdateUserControlUIErrorProvider;
             return;
         }
     }
     else if (this.validatingControls.ContainsKey(userControl))
     {
         this.validatingControls.Remove(userControl);
         userControl.ValidationErrorsChanging -= this.UpdateUserControlUIErrorProvider;
     }
 }
        private void Control_EnabledChanged(object sender, EventArgs e)
        {
            Control control = (Control)sender;

            if (!control.Enabled)
            {
                foreach (object obj in control.DataBindings)
                {
                    Binding       binding       = (Binding)obj;
                    BindingSource bindingSource = binding.DataSource as BindingSource;
                    if (bindingSource != null)
                    {
                        ExchangeErrorProvider errorProvider = this.GetErrorProvider(bindingSource);
                        if (errorProvider != null)
                        {
                            Control errorProviderAnchor = InputValidationProvider.GetErrorProviderAnchor(control);
                            errorProvider.SetError(errorProviderAnchor, string.Empty);
                        }
                    }
                }
            }
        }