使用xaml基于单选按钮选择加载不同的用户控件

时间:2012-04-26 19:46:03

标签: wpf xaml

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

谢谢,

2 个答案:

答案 0 :(得分: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}}"

答案 1 :(得分:0)

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

在ListView中显示该列表,其中包含所选项目的所需外观 MyUserOptions的dataTemplate只显示标题。在列表视图下面,放 一个ContentControl,它将listView SelectedItem作为DataContext,并绑定到 UserControl属性。