Is it possible to get compile time checking on bindings between the View and ViewModel?
<p>We are writing a C# application in Visual Studio using <code>WPF</code> and <code>MVVM</code>.<br>
In our <code>View</code>, we write interfaces in <code>XAML</code>, and then bind the GUI properties to functions in the <code>ViewModel</code>.  </p>

<p>Here is a relevant snippet of the <code>View</code> code:  </p>

<pre><code>&lt;StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Center"&gt;
    &lt;Button Width="124" HorizontalAlignment="Left" Content="New Exercise"  Command="{Binding OnNewExercise    }" IsEnabled="{Binding IsLoadEnabled       }" /&gt;
    &lt;Button Width="124" HorizontalAlignment="Left" Content="Load Exercise" Command="{Binding OnLoadExercise   }" IsEnabled="{Binding IsLoadEnabled       }" /&gt;
    &lt;Button Width="124" HorizontalAlignment="Left" Content="Save Exercise" Command="{Binding OnSaveExercise   }" IsEnabled="{Binding IsSaveEnabled       }" /&gt;
    &lt;Button Width="124" HorizontalAlignment="Left" Content="Checkpoint"    Command="{Binding OnMakeCheckpoint }" IsEnabled="{Binding IsCheckpointEnabled }" /&gt;
&lt;/StackPanel&gt;
</code></pre>

<p>The <code>Bindings</code> shown above are all public functions in the <code>ViewModel</code>.<br>
Here is that snippet:  </p>

<pre><code>//Button bindings.  These functions are called on button clicks.
public ICommand OnNewExercise    { get { return _dashboardButtons.Exercise.NewCommand;    } }
public ICommand OnLoadExercise   { get { return _dashboardButtons.Exercise.LoadCommand;   } }
public ICommand OnSaveExercise   { get { return _dashboardButtons.Exercise.SaveCommand;   } }
public ICommand OnMakeCheckpoint { get { return _dashboardButtons.Checkpoint.MakeCommand; } }
public ICommand OnLoadCheckpoint { get { return _dashboardButtons.Checkpoint.LoadCommand; } }
</code></pre>

<p><strong>Problem:</strong><br>
When someone renames a function in the <code>ViewModel</code>,<br>
the <code>View</code> still builds, and it causes our interfaces to stop working.</p>

<p>How can I guarantee at compile time that the bindings in the <code>View</code> match the existing functions in the corresponding <code>ViewModel</code>?  It would be great if the <code>View.xaml</code> was able to cause a compilation failure.</p>