如何仅使用xaml通过单选按钮检查状态更改来切换DataTemplate?

时间:2011-08-24 07:19:52

标签: wpf xaml

我有WPF窗口,其中包含Frame和两个Radio Buttons。我需要通过更改单选按钮检查状态来切换Frames ContentTemplate。我如何仅使用xaml实现它?

2 个答案:

答案 0 :(得分:2)

由于您没有添加任何示例代码,因此没有太多事情要做。尝试类似这样的事情

<ContentControl>
    <ContentControl.ContentTemplate>
        <DataTemplate>
            <DataTemplate.Resources>
                <DataTemplate x:Key="dataTemplate1">
                    <TextBlock Text="Template 1"/>
                </DataTemplate>
                <DataTemplate x:Key="dataTemplate2">
                    <TextBlock Text="Template 2"/>
                </DataTemplate>
            </DataTemplate.Resources>
            <StackPanel>
                <Frame x:Name="frame1"
                        Height="100"
                        ContentTemplate="{StaticResource dataTemplate1}"/>
                <RadioButton x:Name="template1RadioButton" IsChecked="True" Content="Template 1"/>
                <RadioButton x:Name="template2RadioButton" Content="Template 2"/>
            </StackPanel>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding ElementName=template2RadioButton, Path=IsChecked}" Value="True">
                    <Setter TargetName="frame1" Property="ContentTemplate" Value="{StaticResource dataTemplate2}"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </ContentControl.ContentTemplate>
</ContentControl>

答案 1 :(得分:0)

您可以使用Triggers之类的Radio Button

 <RadioButton.Triggers>
  <Trigger Property="RadioButton.IsChecked" Value="True">
           //enter your xaml  here..     
  </Trigger>
 </RadioButton.Triggers>

您可以在此博客Triggers

上查看有关触发器的更多信息