none
WPF Treeview Binding Collection RRS feed

  • Frage

  • Hallo zusammen,

    ich bin relativ neu auf dem WPF Gebiet und möchte meine ProduktStruktur in ein Treeview laden.

    Meine ProduktKlasse sieht wie folgt aus:

    public class ProductCategory : BaseModel
        {
            [DataMember]
            public virtual string Name { get; set; }

            [DataMember]
            public virtual int? ParentCategoryId { get; set; }

            [DataMember]
            public virtual ProductCategory ParentCategory { get; set; }

            [DataMember]
            public virtual IList<ProductCategory> SubCatagories { get; set; }
        }

    In meiner Collection sieht es wie folgt aus:

    Habe da eine Hauptkategorie Touristenbüro und zwei Unterkategorien Museum und Stadtführung.

    Mein TreeView sieht wie folgt aus:

    <TreeView ItemsSource="{Binding Groups}">
                        <TreeView.ItemTemplate>
                            <HierarchicalDataTemplate ItemsSource="{Binding Name}">
                                <TextBlock Foreground="Red" Text="{Binding Name}" />
                                <HierarchicalDataTemplate.ItemTemplate>
                                    <HierarchicalDataTemplate ItemsSource="{Binding Path=SubCategories}">
                                        <TextBlock Text="{Binding Name}" />
                                    </HierarchicalDataTemplate>
                                </HierarchicalDataTemplate.ItemTemplate>
                            </HierarchicalDataTemplate>
                        </TreeView.ItemTemplate>
                    </TreeView>

    Kriege die Hauptkategorie zwar reingeladen mit dem Pfeil zum Öffnen der Unterkategorien nur steht da dann nichts.

    Hat jemand eine Lösung?

    Danke im Voraus.

    Dienstag, 25. Februar 2014 15:13

Antworten

  • Hallo,
    damit erkannt wird, das die Items noch Unterelemente haben, musst du den DataTyp des HierarchicalDataTemplate  festlegen. Siehe deine andere Frage. Diese Eigenschaft musst du für jedes Template festlegen. Wobei du nur eines brauchst, wenn alles von der selben Klasse dargestellt wird.

    Noch 2 Punkte zum Forum:

    1. Wenn eine Frage abgeklärt ist, markiere die beantwortenden Posts bitte als Antwort. Somit finden Andere mit dem gleichen Problem schneller eine Lösung. (Bezieht sich auf deine andere Frage)
    2. Verwende bitte Codeblöcke (), damit man Code besser vom Text unterscheiden kann.

    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert Johann1388 Dienstag, 25. Februar 2014 16:02
    Dienstag, 25. Februar 2014 15:40
    Moderator

Alle Antworten

  • Hallo,
    damit erkannt wird, das die Items noch Unterelemente haben, musst du den DataTyp des HierarchicalDataTemplate  festlegen. Siehe deine andere Frage. Diese Eigenschaft musst du für jedes Template festlegen. Wobei du nur eines brauchst, wenn alles von der selben Klasse dargestellt wird.

    Noch 2 Punkte zum Forum:

    1. Wenn eine Frage abgeklärt ist, markiere die beantwortenden Posts bitte als Antwort. Somit finden Andere mit dem gleichen Problem schneller eine Lösung. (Bezieht sich auf deine andere Frage)
    2. Verwende bitte Codeblöcke (), damit man Code besser vom Text unterscheiden kann.

    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert Johann1388 Dienstag, 25. Februar 2014 16:02
    Dienstag, 25. Februar 2014 15:40
    Moderator
  • Vielen Dank! :)
    Dienstag, 25. Februar 2014 16:03