我有一个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}"/>


我怎样才能做到这一点?

最佳答案

您可以将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>

关于c# - 动态更改GroupBox的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34195486/

10-11 17:11