2015-12-10 4 views
1

У меня есть GroupBox. Это поле содержит один UserControlДинамическое изменение содержания GroupBox

<GroupBox Header="NewsBox"> 

    <GroupBox.Content> 
     <NewsDay:NewsDayControl DataContext="{Binding SelectedNews}"/> 
    </GroupBox.Content> 

</GroupBox> 

Теперь я хочу, чтобы изменить содержание GroupBox динамически в зависимости от выбранной вкладки в TabControl.

<DataTrigger Binding="{Binding ElementName=TabControl, Path=SelectedIndex}" Value="0"> 
    <Setter Property="Visibility" Value="Hidden" /> 
</DataTrigger> 

Это другой UserControl который должен появиться, если вкладка с индексом 1 выбран:

<Imprint:ImprintControl DataContext="{Binding SelectedImprint}"/> 

Как я могу это сделать?

ответ

3

Вы можете использовать Style с такими триггерами.

<GroupBox Header="NewsBox"> 
    <GroupBox.Style> 
     <Style TargetType="GroupBox"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=TabControl, Path=SelectedIndex}" Value="0"> 
        <Setter Property="Content"> 
         <Setter.Value> 
          <NewsDay:NewsDayControl DataContext="{Binding SelectedNews}"/> 
         </Setter.Value> 
        </Setter> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding ElementName=TabControl, Path=SelectedIndex}" Value="1"> 
        <Setter Property="Content"> 
         <Setter.Value> 
          <Imprint:ImprintControl DataContext="{Binding SelectedImprint}"/> 
         </Setter.Value> 
        </Setter> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </GroupBox.Style> 
</GroupBox> 
Смежные вопросы