在wpf应用程序中动态更改用户控件

时间:2012-01-16 11:31:45

标签: wpf xaml

我有两个用户控件需要根据数据库中的属性动态加载。

我正在修改现有的XAML页面。该页面包含以下行

 <wcontrols:page1  x:Name="page1" Width="674" Height="372.215"Canvas.Left="57" Canvas.  Top="215.785" Loaded="page1_Loaded_1" />

我想动态地在page1和page2之间切换。我是否需要将代码移动到代码隐藏文件中,或者在XAML文件中是否有任何方法可以执行此操作?

1 个答案:

答案 0 :(得分:3)

为控件定义一个样式,并在其中添加一个DataTrigger,用于在更改viewmodel的属性时设置第2页

<ContentControl>
    <ContentControl.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=property}" Value="page1">
                    <Setter Property="ContentControl.Content" Value="{StaticResource page1}"/>
                </DataTrigger>
                <DataTrigger Biniding="{Binding Path=property}" Value="page2">
                    <Setter Property="ContentControl.Content" Value="{StaticResource page2}"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ContentControl.Style>
</ContentControl>