Вот один из способов, с помощью стиля на ComboBox с триггерами, чтобы установить ItemTemplate динамически:
Edit: Изменение стиля в ресурс. Обратите внимание, что это все еще привязано к CheckBox напрямую, используя привязку элемента - если вы хотите, чтобы он был более гибким, вы могли привязать свойство IsChecked CheckBox к свойству ViewModel и полагаться на это изменение, а не на IsChecked.
Давайте двигаться стиль в разделе Ресурсы нашего окна:
<Window.Resources>
<Style x:Key="myStyle" TargetType="ComboBox">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked,ElementName=chk}" Value="True">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ID}" />
<TextBlock Text=": " />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
Теперь определим CheckBox и пару ComboBoxes, которые полагаются на него:
<CheckBox x:Name="chk" Content="Click Me" />
<ComboBox ItemsSource="{Binding}" Style="{StaticResource myStyle}" />
<ComboBox ItemsSource="{Binding}" Style="{StaticResource myStyle}" />
Yo, на каком языке? –
Извлечь список значений для клиента/или массива. При добавлении элементов в раскрывающийся список добавьте элементы в список, выполняющий правильную манипуляцию строки в списке. – brumScouse