Question

I need to flip between two views dynamically based on a boolean flag in my ViewModel.

I thought it would be as simple as:

<ContentControl>
    <ContentControl.Style>
        <Style TargetType="ContentControl">

            <Setter Property="Content" Value="{StaticResource View1}" />

            <Style.Triggers>
                <DataTrigger Binding="{Binding IsShowingView2}">                                     
                    <Setter Property="Content" Value="{StaticResource View2}" />                                   
                </DataTrigger>
             </Style.Triggers>

         </Style>
     </ContentControl.Style>
 </ContentControl>

However, View2 never gets displayed, even if IsShowingView2 is always true.

Any ideas anyone? All the examples I can find seem to be altering the ContentTemplate instead, but I have no need to do that. I just want different content.

Was it helpful?

Solution

You're not actually setting a value for the DataTrigger

<DataTrigger Binding="{Binding IsShowingView2}" Value="True">                                     
    <Setter Property="Content" Value="{StaticResource View2}" />                                   
</DataTrigger>

Also check for binding errors in the output window.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top