アイテムが ContentControl タイプのコレクションにツリービューをバインドしています。階層データ テンプレート (およびスタイル) がアイテムに適用されません。
<TreeView Name="tvCategories" ItemsSource="{Binding Items}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type EmailClient:EmailFolder}" ItemsSource="{Binding Messages}">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImageSource}" Stretch="Fill" Width="{Binding RelativeSource={RelativeSource Self}, Path=Source.PixelWidth}" Height="{Binding RelativeSource={RelativeSource Self}, Path=Source.PixelHeight}" SnapsToDevicePixels="True"/>
<TextBlock Text="{Binding Title}" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
DataTemplate 自体は正しいです。Treeview.ItemTemplate として使用すると、すべて問題ありません。私のアイテムが ContentControl の子孫でない場合は、すべて問題ありません。
なぜこうなった?