Using DataTrigger to apply different Views to the same ViewModel
datatemplate, datatrigger, mvvm, wpf
Solution
Use `DataTrigger` to switch `ContentTemplate`:
<DataTemplate DataType="{x:Type vm:AwesomeViewModel}">
<ContentControl Content="{Binding}">
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="ContentTemplate"
Value="{StaticResource DetailedTemplate}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding DisplaySummary}" Value="True">
<Setter Property="ContentTemplate"
Value="{StaticResource SummaryTemplate}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</DataTemplate>
Problem
I have a ViewModel where I created a `bool DisplaySummary` property. When this is true, a `SummaryView` is to be use to render that ViewModel, otherwise a `DatailedView` is to be used. I am in doubt about how I should proceed from here: ``` <DataTemplate DataType="{x:Type vm:AwesomeViewModel}"> <ContentControl Content="{Binding}"> <ContentControl.Style> <Style> #### WHAT I SHOULD PUT HERE? </Style> </ContentControl.Style> </ContentControl> </DataTemplate> <DataTemplate x:Key="SummaryTemplate"> <vw:SummaryViewScreen /> </DataTemplate> <DataTemplate x:Key="DetailedTemplate"> <vw:DetailedViewScreen /> </DataTemplate> ``` EDIT: at first I tried to use `DataTemplateSelector`, but since it does not respond to PropertyChanged, I had to use DataTriggers.