 <p>[Adding this here since you want a way to do it purely in XAML. I think that insisting on pure XAML here is not essential and @bit's answer is the right way to go, IMO.]</p> <p>You can use style to have triggers that do the change.</p> <p>Let's say your UC is called <code>MyUC</code> and currently you have an instance of it similar to: <code>&lt;local:MyUC/&gt;</code> in some other view/UC/window. You can change the instance to look like so:</p> <pre><code>&lt;local:MyUC&gt; &lt;local:MyUC.Style&gt; &lt;Style TargetType="{x:Type local:MyUC}"&gt; &lt;Setter Property="DataContext" Value="{Binding SelectedItem, ElementName=MyDataGrid}"/&gt; &lt;Style.Triggers&gt; &lt;DataTrigger Binding="{Binding ElementName=MyCheckbox, Path=IsChecked}" Value="True"&gt; &lt;Setter Property="DataContext" Value="{Binding APerson}"/&gt; &lt;/DataTrigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/local:MyUC.Style&gt; &lt;/local:MyUC&gt; </code></pre> <p>I'm changing here the data context property, but you can change any other dependency property on <code>MyUC</code>.</p> <p>Again, I think this is a less favorite approach to tackle this functionality, but it's pure XAML.</p>