Interessante, non l'avevo mai provato

Usa direttamente il binding. Ho fatto un test e funziona.
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
Height="300"
Width="300"
x:Name="win">
<Window.Resources>
<ResourceDictionary x:Name="comboStyles">
<Style x:Key="combo1"
TargetType="{x:Type ComboBox}">
<Setter Property="Foreground"
Value="Red" />
</Style>
<Style x:Key="combo2"
TargetType="{x:Type ComboBox}">
<Setter Property="Foreground"
Value="Blue" />
</Style>
</ResourceDictionary>
</Window.Resources>
<StackPanel>
<ComboBox Style="{Binding RelativeSource={x:Static RelativeSource.Self},Path=SelectedItem}"
ItemsSource="{Binding ElementName=comboStyles,Path=Values}">
</ComboBox>
</StackPanel>
</Window>Più bello di così
