title: Button IsEnabled binding not working properly
body: <p><code>Button.IsEnabled</code> doesn't work properly.</p>
  
  <p>I have debugged the code and the setter for the property was hit with the "true" value. But the button is still disabled.</p>
  
  <p>View.xaml:</p>
  
  <pre><code>&lt;StackPanel Grid.Row="2" Margin="0,20,0,0" &gt;
          &lt;Button Name="ButtonOk" Content="OK" Margin="0,0,4,0" IsEnabled="{Binding SomethingIsValid}"  Command="{Binding CommandOk}" /&gt;
          &lt;Button Name="ButtonCancel" Content="Cancel" Margin="0,0,4,0" IsCancel="True" /
  &lt;/StackPanel&gt;
  </code></pre>
  
  <p>View.xaml.cs:</p>
  
  <pre><code>...
  public View(ViewModel viewModel)
  {
      this.InitializeComponent();
  
      this.viewModel = viewModel;
      this.DataContext = viewModel;            
  }
  </code></pre>
  
  <p>ViewModel:</p>
  
  <pre><code>public bool SomethingIsValid
  {
     get
     {
        return somethingIsValid;
     }
     set
     {
        this.somethingIsValid= value;
        this.RaisePropertyChanged(() =&gt; this.SomethingIsValid);
     }
  }
  
  #region IDataErrorInfo
  public string this[string columnName]
  {
     get
     {
        this.SomethingIsValid= false;
  
        if ("SomeName" == columnName)
        {
           if (string.IsNullOrEmpty(this.Status))
           {
              return "Please bla bla..";
           }
        }
  
        this.SomethingIsValid = true;
        return string.Empty;
     }
  }
  
  public string Error
  {
     get
     {
        return string.Empty;
     }
  }
  #endregion
  
  public ICommand CommandOk
  {
     get
     {
        if (this.commandOk == null)
        {
           this.commandOk = new RelayCommand(this.CommandOkAktion, () =&gt; this.SomethingIsValid );
        }
  
        return this.commandOk;
     }
  }
  </code></pre>