私は2つ持っていComboBoxesます。1つは列挙値のリストにバインドされ、もう1つはカスタムクラスオブジェクトのリストにバインドされ、DisplayMemberPathプロパティが設定されています。
列挙値へのComboBoxバインドは暗黙的TextBlockなスタイルを適用しますが、プロパティComboBoxを使用するは適用DisplayMemberPathしません。
Snoopを使用すると、両方ComboBoxesがまったく同じコントロールのセット(を<ContentPresenter>含む<TextBlock>)でレンダリングされることを確認できますがTextBlock、セットを含まComboBoxない場合は5が含まれ、セットを含む場合は含まれません。DisplayMemberPathMarginDisplayMemberPath
<Grid.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="5" />
</Style>
</Grid.Resources>
<ComboBox Grid.Row="0" Grid.Column="1"
ItemsSource="{Binding EnumCollection}"
SelectedItem="{Binding SelectedEnum}" />
<ComboBox Grid.Column="1" Grid.Row="2"
ItemsSource="{Binding SomeCollection}"
SelectedItem="{Binding SelectedItem}"
DisplayMemberPath="Name" />

どうしてこれなの?ComboBoxそして、列挙型が暗黙TextBlockのスタイルを継承しないようにするにはどうすればよいですか?