There are questions on this already, but they don't answer my question. For example:
<ContentControl.Resources>
<DataTemplate DataType="{x:Type Databinding:RedScreenViewModel}" >
<Databinding:RedScreen DataContext="{Binding}"/>
</DataTemplate>
<DataTemplate DataType="{x:Type Databinding:BlueScreenViewModel}">
<Databinding:BlueScreen DataContext="{Binding}" />
</DataTemplate>
</ContentControl.Resources>
As you can see I am attempting to set the DataContext for the created View hoping that it would use the ViewModel that was used to create it. But when I step through the code behind.. the DataContext is always null. How can I achieve what I want? Thanks
If you define a DataTemplate
for your ViewModel class with a View control in it, it will automatically have the DataContext
set to the ViewModel.
This should work:
<ContentControl.Resources>
<DataTemplate DataType="{x:Type Databinding:RedScreenViewModel}">
<Databinding:RedScreen />
</DataTemplate>
<DataTemplate DataType="{x:Type Databinding:BlueScreenViewModel}">
<Databinding:BlueScreen />
</DataTemplate>
</ContentControl.Resources>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With