こんにちは。「BasedOn」スタイルが正しく動作しないので、助けを求めています。状況は次のとおりです。
次のように、ResourceDictionary で基本スタイルを定義しています。
スタイル.xaml
<Style TargetType="{x:Type TreeView}" x:Key="MyBaseStyle">
<Style.Resources>
    <HierarchicalDataTemplate ...>
        ...
    </HierarchicalDataTemplate>
    <DataTemplate ...>
        ...
    </DataTemplate>
    <Style TargetType="{x:Type TreeViewItem}">
        ...
    </Style>
</Style.Resources>
<!-- This is for test purpose -->
<Setter Property="Background" Value="Red" />
この辞書を App.xaml に次のようにマージします。
App.xaml
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Styles.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
これは私が以前に行ったことで、メインウィンドウで完全に機能しました:
MainWindow.xaml
<TreeView ... Style="{StaticResource MyBaseStyle}" />
しかし、私のアプリケーションには複数の TreeView があるため、それらに MyBaseStyle を適用し、TreeView ごとに異なる DataTrigger を追加する必要があります。私はこれを試しました:
MainWindow.xaml
<TreeView ...>
    <TreeView.Style>
        <Style TargetType="{x:Type TreeView}" BasedOn="{StaticResource MyBaseStyle}">
            <Style.Triggers>
                <!-- DataTrigger here -->
            </Style.Triggers>
        </Style>
    </TreeView.Style>
</TreeView>
問題は、MyBaseStyle の HierarchicalDataTemplate が機能していないことです。MyBaseStyle の赤い背景が表示され、DataTrigger は正常に機能しますが、テンプレートは機能しません。プログラムが BasedOn スタイルの Style.Resources を無視しているようです??
スタイルスコープの問題である可能性があると思いますが、 TreeView ごとにコードを繰り返さなくても、どうすれば解決できますか? 誰かがすでにこの状況に陥っており、問題の原因を知っていますか?
助けてくれてありがとう、アルノー。