2015-12-10 142 views
1

我有一个GroupBox。此框包含一个UserControl动态更改GroupBox的内容

<GroupBox Header="NewsBox"> 

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

</GroupBox> 

现在,我要动态地取决于TabControl的选择Tab键来改变GroupBox的内容。

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