Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Force IDataErrorInfo validation

I have two controls on some panel: textbox and combobox:

<TextBox Text="{Binding ShapeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />

<ComboBox SelectedItem="{Binding ActiveStageViewModel, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />

I need to force idataerrorinfo validation for textbox, when I select something on combobox. How to do that?

The code from viewmodel:

string IDataErrorInfo.this[string propertyName]
    {
      get
      {
        var error = string.Empty;

        if (propertyName == Expression.GetPropertyName(() => ActiveStageViewModel))
        {
          // TODO: Add functionality to force ShapeName property validation
          return error;
        }

        if (propertyName == Expression.GetPropertyName(() => ShapeName))
        {
          error = ValidateShapeName();
        }

        TooltipMessage = error;
        return error;
      }
    }
like image 345
Witcher Avatar asked Nov 14 '12 12:11

Witcher


1 Answers

Just raise the NotifyPropertyChanged event for the property you want to validate or if you are in .NET 4.5 or Silverlight 4 use the INotityDataErrorInfo.

like image 119
bitbonk Avatar answered Sep 30 '22 00:09

bitbonk