动态更改GroupBox的内容

时间:2015-12-10 06:51:43

标签: c# wpf xaml

我有GroupBox。此框包含一个UserControl

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

如果选择了带索引1的制表符,那么这是应出现的另一个UserControl

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

我该怎么做?

1 个答案:

答案 0 :(得分: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>