Если вы хотите показать несколько наборов элементов управления одновременно, добавьте в окно все элементы управления и установите их Visibility
, используя привязку данных, и используйте ComboBox
, чтобы обновить свойства, с которыми связаны элементы управления.
Или, если вы хотите показать только один элемент управления за раз, просто используйте DataContext из ComboBox:
<Window.DataContext>
<x:Array x:Key="myItems">
<local:Item MenuItem1="abc" MenuItem2="def" />
<local:Item MenuItem1="ghi" MenuItem2="jkl" />
...
<local:Item MenuItem1="ghi" MenuItem2="jkl" />
</x:Array>
</Window.DataContext>
<Grid>
...
<ComboBox x:Name="selection" ItemsSource="{Binding}">
...
<StackPanel DataContext="{Binding /}" ...>
<MenuItem Header="{Binding MenuItem1}" OnClick="DisplayListBox" />
<MenuItem Header="{Binding MenuItem2}" OnClick="DisplayTextBox" />
<TextBox Visibility="Hidden" ... />
<ListBox Visibility="Hidden" ... />
</StackPanel>
</Grid>
с соответствующим кодом для DisplayListBox и DisplayTextBox