【问题标题】:loading different user control based on radio button selection using xaml使用 xaml 基于单选按钮选择加载不同的用户控件
【发布时间】:2012-04-26 19:46:02
【问题描述】:

我有 N 个单选按钮,并且基于单选按钮选择,我想在 wpf 应用程序的 N 个用户控件中显示一个用户控件。我想使用更少的代码和更多的 xaml 任何人都可以为此提出好的解决方案。

谢谢,

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    首先,将要显示的所有控件放入 XAML。 (如果你愿意的话,在彼此之上......) 然后,将以下代码放入每个控件中,以打开和关闭控件的可见性。

    Visibility="{Binding Path=IsMyControlVisible, Converter={StaticResource BooleanToVisibilityConverter}}"
    

    在您的代码中,为您要显示/隐藏的每个控件实现一个属性(对于上述控件,请调用属性“IsMyControlVisible”。

    然后,将单选按钮 IsChecked 绑定到 IsMyControlVisible 属性。

    IsChecked="{Binding IsMyControlVisible, Mode=OneWayToSource, FallbackValue=false }"
    

    最后,如果您只是为 IsMyControlVisible 属性使用代码隐藏,则应将以下内容放入您的 xaml 中,以便您的控件将数据上下文设置为您的代码隐藏:

    DataContext="{Binding RelativeSource={RelativeSource Self}}"
    

    【讨论】:

      【解决方案2】:

      您所拥有的是(描述行为的标题;用户控制)列表。
      所以定义 MyUserOptions :一个具有 ControlCaption 和 UserControl 作为公共属性的类。
      建立一个这样的'MyUserOptions'列表

      在 ListView 中显示该列表,以您想要的所选项目的外观, MyUserOptions 的 dataTemplate 只显示标题。在该列表视图下方,放置 将 listView SelectedItem 作为 DataContext 并绑定到的 ContentControl UserControl 属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多