2014-02-21 7 views
0

Мне нужно динамически переключаться между двумя представлениями на основе булевого флага в моей модели ViewModel.Динамическое изменение содержимого ContentControl с помощью триггера

Я думал, что это будет так просто, как:

<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> 

Однако View2 никогда не будет отображаться, даже если IsShowingView2 всегда верно.

Любые идеи кто-нибудь? Все примеры, которые я могу найти, по-видимому, изменяют ContentTemplate, но мне не нужно это делать. Мне просто нужен другой контент.

+0

Проверьте окно вывода Visual Studio, чтобы узнать, есть ли у вас ошибки привязки. –

ответ

1

Вы на самом деле не устанавливая значение для DataTrigger

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

Также проверьте для связывания ошибки в окне вывода.

+0

OMG! Не могу поверить, что я это сделал. Завязывался с шаблонами за последние 45 минут! Бесконечно благодарен. – GazTheDestroyer

+0

Я сделал то же самое на прошлой неделе, окно вывода действительно отлично подходит для этого. – Matt

Смежные вопросы