根據用戶在下拉列表中進行的選擇,我需要顯示不同的控件。也就是說,如果用戶選擇日期,應該顯示日期選擇控件,或者文本輸入框用於文本輸入...或者用於更復雜選擇的一組控件。根據用戶對下拉列表的選擇顯示控件
所以這個想法是創建多少用戶控件,然後在需要的時間顯示所需的控件。我想要一些比'可見真/假'屬性更加優雅的東西。
根據用戶在下拉列表中進行的選擇,我需要顯示不同的控件。也就是說,如果用戶選擇日期,應該顯示日期選擇控件,或者文本輸入框用於文本輸入...或者用於更復雜選擇的一組控件。根據用戶對下拉列表的選擇顯示控件
所以這個想法是創建多少用戶控件,然後在需要的時間顯示所需的控件。我想要一些比'可見真/假'屬性更加優雅的東西。
我想要一些比'可見真/假'屬性更加優雅的東西。
:-)你將土地完全調這樣做,反正....
這是太微不足道了......什麼像樣的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