根据用户在下拉列表中进行的选择,我需要显示不同的控件。也就是说,如果用户选择日期,应该显示日期选择控件,或者文本输入框用于文本输入...或者用于更复杂选择的一组控件。根据用户对下拉列表的选择显示控件
所以这个想法是创建多少用户控件,然后在需要的时间显示所需的控件。我想要一些比'可见真/假'属性更加优雅的东西。
根据用户在下拉列表中进行的选择,我需要显示不同的控件。也就是说,如果用户选择日期,应该显示日期选择控件,或者文本输入框用于文本输入...或者用于更复杂选择的一组控件。根据用户对下拉列表的选择显示控件
所以这个想法是创建多少用户控件,然后在需要的时间显示所需的控件。我想要一些比'可见真/假'属性更加优雅的东西。
我想要一些比'可见真/假'属性更加优雅的东西。
:-)你将土地完全调这样做,反正....
这是太微不足道了......什么像样的WPF相关的教程将帮助您与此...
刚为了快速启动,您必须使用ComboBox的SelectedItem
的Binding
和Visibility
所有您想通过适当的值转换器隐藏/显示的控件。
您可以使用内容控制和数据触发器来实现它。无需玩可见性。
下面是一个示例,它会给你清晰的想法。 在下面的示例中,我使用了组合框选定项目的内容控件作为datacontext。 XAML代码:
<StackPanel Orientation="Vertical" Width="150">
<ComboBox Name="Controls"></ComboBox>
<ContentControl DataContext="{Binding ElementName=Controls,Path=SelectedItem}">
<ContentControl.Style>
<Style TargetType="ContentControl">
<Style.Triggers>
<DataTrigger Binding="{Binding}" Value="Date">
<Setter Property="Content">
<Setter.Value>
<DatePicker Height="30"></DatePicker>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="Text">
<Setter Property="Content">
<Setter.Value>
<TextBox Height="30"></TextBox>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="Button">
<Setter Property="Content">
<Setter.Value>
<Button Height="30"></Button>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="Checkbox">
<Setter Property="Content">
<Setter.Value>
<CheckBox Height="30"></CheckBox>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</StackPanel>
代码背后:
InitializeComponent();
List<string> controlTypes = new List<string> { "Date", "Text", "Button", "Checkbox" };
Controls.ItemsSource = controlTypes;
注意:有关创建我用后面的代码示例...您可以轻松地将其转换为MVVM