Вот один из способов использования стиля в ComboBox с триггерами для динамической установки ItemTemplate:
Редактировать: изменение стиля в ресурс. Обратите внимание, что это все еще привязка к 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 и несколько ComboBox, которые на него полагаются:
<CheckBox x:Name="chk" Content="Click Me" />
<ComboBox ItemsSource="{Binding}" Style="{StaticResource myStyle}" />
<ComboBox ItemsSource="{Binding}" Style="{StaticResource myStyle}" />