TreeViewHierarchicalDataTemplateはItemContainerStyleを適用しません

ミスタープレジデント

TreeViewを使用して階層データを表示しようとしていますが、Childrenタイプごとに異なるDataTemplatesを設定したいと思います。

しかし、問題は、私のスタイルが適用されないということです。

多分それは非常に単純な間違いですが、私は本当にそれを見つけられません。

<TreeView ItemsSource="{Binding List}">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type local:Main}" ItemsSource="{Binding Children}">
            <TextBlock Text="{Binding Property1}"/>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type local:Type2}">
            <HierarchicalDataTemplate.ItemContainerStyle>
                <Style TargetType="TreeViewItem">
                    <Setter Property="IsExpanded" Value="True"/>
                </Style>
            </HierarchicalDataTemplate.ItemContainerStyle>
            <TextBlock Text="{Binding Property2}"/>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type local:Type3}">
            <HierarchicalDataTemplate.ItemContainerStyle>
                <Style TargetType="TreeViewItem">
                    <Setter Property="IsExpanded" Value="False"/>
                </Style>
            </HierarchicalDataTemplate.ItemContainerStyle>
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>
user3690202

わかりました、私は何が悪いのか知っています。HierarchicalDataTemplate.ItemContainerStyleはItemsContainerに適用されるスタイルが含ま子ども現在のノードのが格納されているが。これを実験として試して、スタイルを次のように変更してください。

    <HierarchicalDataTemplate.ItemContainerStyle>
        <Style TargetType="{x:Type TreeViewItem}">
            <Setter Property="IsExpanded" Value="True" />
            <Setter Property="Foreground" Value="Navy" />
        </Style>
    </HierarchicalDataTemplate.ItemContainerStyle>

このスタイルを配置したノードには引き続き黒い前景がありますが、すべてのは海軍の前景になります。

少し直感に反しますが、考えてみると理にかなっていると思います。したがって、これを念頭に置いて、最善の解決策は、すべてのTreeViewItemのIsExpandedをVM内の変数にバインドし、そこでのタイプに基づいて異なる値を選択することだと思います。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SimpleDateFormatはTimeZoneを適用していません

分類Dev

PowerMockRunnerはJUnit ClassRulesを適用しません

分類Dev

AngularMaterialはスタイルを適用しません

分類Dev

DjangoMigrationは移行の変更を適用していません

分類Dev

MySQL InsertSelectはNOTNULL制約を適用しません

分類Dev

CSS-floatは効果を適用しません

分類Dev

カラーバーはvminとvmaxを適用しません

分類Dev

sap.ui.layout.SplitPaneはSplitterLayoutDataを適用しません

分類Dev

HTMLはCSSを適用していません

分類Dev

@importはPostCSS / CSSNextを使用して適用されません

分類Dev

Unity AddExplosionForce()は爆発を適用しません

分類Dev

MCはカスタム構成を適用しません

分類Dev

AJAXは変数に値を適用しません

分類Dev

Djangoはdefault = 0を適用していません

分類Dev

Knockout cssdata-bindはクラスを適用しません

分類Dev

Primefacesはスタイルを適用しません

分類Dev

udevは変更を再帰的に適用しません

分類Dev

udevはルールを適用しません

分類Dev

fwsnortはiptablesにルールを適用しません

分類Dev

C#HttpListener:IE11はCSSを適用しません

分類Dev

javascriptは要素にfindを適用できませんでした

分類Dev

CSSは一部の部分を適用しません

分類Dev

Android SpannableString(Builder)はスタイルを適用しません

分類Dev

divホバーはカラーCSSを適用しません

分類Dev

clang-tidy-fixは変更を適用しません

分類Dev

ReactはCSSルールを適用しません

分類Dev

classNameはスタイルを適用しません

分類Dev

クリックメソッドを外部divに適用しますが、内部divには適用しません

分類Dev

特定のサイトにSSLを適用しますが、他のサイトには適用しません

Related 関連記事

  1. 1

    SimpleDateFormatはTimeZoneを適用していません

  2. 2

    PowerMockRunnerはJUnit ClassRulesを適用しません

  3. 3

    AngularMaterialはスタイルを適用しません

  4. 4

    DjangoMigrationは移行の変更を適用していません

  5. 5

    MySQL InsertSelectはNOTNULL制約を適用しません

  6. 6

    CSS-floatは効果を適用しません

  7. 7

    カラーバーはvminとvmaxを適用しません

  8. 8

    sap.ui.layout.SplitPaneはSplitterLayoutDataを適用しません

  9. 9

    HTMLはCSSを適用していません

  10. 10

    @importはPostCSS / CSSNextを使用して適用されません

  11. 11

    Unity AddExplosionForce()は爆発を適用しません

  12. 12

    MCはカスタム構成を適用しません

  13. 13

    AJAXは変数に値を適用しません

  14. 14

    Djangoはdefault = 0を適用していません

  15. 15

    Knockout cssdata-bindはクラスを適用しません

  16. 16

    Primefacesはスタイルを適用しません

  17. 17

    udevは変更を再帰的に適用しません

  18. 18

    udevはルールを適用しません

  19. 19

    fwsnortはiptablesにルールを適用しません

  20. 20

    C#HttpListener:IE11はCSSを適用しません

  21. 21

    javascriptは要素にfindを適用できませんでした

  22. 22

    CSSは一部の部分を適用しません

  23. 23

    Android SpannableString(Builder)はスタイルを適用しません

  24. 24

    divホバーはカラーCSSを適用しません

  25. 25

    clang-tidy-fixは変更を適用しません

  26. 26

    ReactはCSSルールを適用しません

  27. 27

    classNameはスタイルを適用しません

  28. 28

    クリックメソッドを外部divに適用しますが、内部divには適用しません

  29. 29

    特定のサイトにSSLを適用しますが、他のサイトには適用しません

ホットタグ

アーカイブ