WPF: Treeview -> HierrachicalDataTemplate -> Visibility=Hidden??



  • Hallo Freund,

    ich hab einen TreeView basieren auf 2 verscheiden HierachicalDataTemplate. Eines für "Äste", das andere für "Blätter"!

    Wie schaffe ich es nun einen Bestehenden Knoten "auszublenden" ? Wenn ich den Kontent eines "HierachicalDataTemplate" ausblende mit "Vsibility=Collapsed" is der Inhalt zwar nich mehr sichtbar, aber dessen Bereich quaise die leere BoundingBox wird darfstellt?



  • Was ist eine "BoundingBox"?

    Die TreeView arbeitet so:

    - Ob der Pfeil an der Seite zu sehen ist richtet sich nach dem "HasChilds" in den Daten, unabhängig des Visibility States.

    - Sobald man ein Zweig auf klappt greift das normale ItemsControl/ItemsPresenter Handling.
    D.h. er rennt die Items durch, und erstellt deren TreeViewItem Container. (GetContainerForItemOverride)
    Im Template des Containers wird denn mit einem ContentControl (oder HeaderPresenter weiß grad nicht) der Inhalt dargestellt.

    Dieser Header kann bei dir zwar nun Collapsed sein, trotzdem ist der Container da.

    Du hast nur zwei Möglichkeiten, entweder du Filterst den Code Baum richtig (Entfernen der Items, so mach ich es immer, die Parents kennen immer ihre "gefilterten" Childs in einer Separaten Liste), oder du manipulierst (irgendwie) das Templates der TreeView[Items].



  • Hmm ok, danke.. ich denke ich werde deine Alternative in betracht ziehen;)


Log in to reply