【问题标题】:changing user control dynamically in wpf application在 wpf 应用程序中动态更改用户控件
【发布时间】:2012-01-16 11:31:45
【问题描述】:

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

我正在修改现有的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 文件中做到这一点?

【问题讨论】:

  • 请显示Page1控件的容器

标签: wpf xaml


【解决方案1】:

为控件定义一个样式,并在其中放入一个DataTrigger,用于在视图模型的属性更改时设置第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>

【讨论】:

  • 请修正“绑定”中的错字(有一个额外的“我”)。我花了 5 分钟才意识到为什么它不能编译一个“正确”的代码:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多