title: Action in RelayCommand is not running
body: <p>The main window:</p>
  
  <pre><code>&lt;Window x:Class="Generator.MainWindow"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:ignore="http://www.galasoft.ch/ignore"
      mc:Ignorable="d ignore"
      Height="309.851"
      Width="673.433"
      Title="Generator"
      DataContext="{Binding Main, Source={StaticResource Locator}}"&gt;
  
      &lt;Grid x:Name="LayoutRoot"&gt;
          &lt;Frame x:Name="MainFrame" Content="" NavigationUIVisibility="Hidden" HorizontalAlignment="Left" Height="235" Margin="0,36,0,0" VerticalAlignment="Top" Width="294" Source="/Generator;component/Pages/TCPage.xaml"/&gt;
      &lt;/Grid&gt;
  &lt;/Window&gt;
  </code></pre>
  
  <p>This is the page inside frame</p>
  
  <pre><code>&lt;Page x:Class="Generator.Pages.TCPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:local="clr-namespace:Generator.Pages"
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
      DataContext="{Binding TCPageVM, Source={StaticResource Locator}}"
      Title="TCPage"&gt;
  
      &lt;Grid&gt;
          &lt;Button x:Name="button" Content="Jobby" HorizontalAlignment="Left" Margin="160,185,0,0" VerticalAlignment="Top" Width="75"
              Command="{Binding ButtonCommandNew}" /&gt;
      &lt;/Grid&gt;
  &lt;/Page&gt;
  </code></pre>
  
  <p>This is the button command in ModelView of the page (TCPageVM):</p>
  
  <pre><code>    private bool _inProgress = false;
      private RelayCommand _buttonCommandNew;
      public RelayCommand ButtonCommandNew
      {
          get
          {
              var worker = new TCService();
  
              return _buttonCommandNew
                     ?? (_buttonCommandNew = new RelayCommand(async () =&gt;
                     {
                         var progress = new Progress&lt;string&gt;(status =&gt;
                         {
                             ProgressText = status;
                         });
  
                         _inProgress = true;
                         _buttonCommandNew.RaiseCanExecuteChanged();
  
                         await worker.GenerateConfiguration(1, "", "", progress);
  
                         _inProgress = false;
                         _buttonCommandNew.RaiseCanExecuteChanged();
  
                     }, () =&gt; !_inProgress
  
                  ));
          }
      }
  </code></pre>
  
  <p>This is service implementation:</p>
  
  <pre><code>public Task&lt;bool&gt; GenerateConfiguration(int cellCount, string templateFilePath, string outputFilePath, IProgress&lt;string&gt; progress)
  {
      return Task.Run(() =&gt; RunConfigurator(progress));
  }
  
  private bool RunConfigurator(IProgress&lt;string&gt; progress)
  {
      Thread.Sleep(6000);
      progress.Report("Yeah!");
      return true;
  }
  </code></pre>
  
  <p>The problem is that the button is enabled, but the action is not running.</p>