Laden...

[Erledigt] WPF TreeView DataBinding: String wird zerlegt?

Erstellt von weeska vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.544 Views
w
weeska Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren
[Erledigt] WPF TreeView DataBinding: String wird zerlegt?

Hallo,

Ich versuche mich gerade ein bisschen an WPF und wollte ein DataBinding für eine TreeView erstellen.

Die entsprechende Collection wird auch gefunden, allerdings gibt es ein Problem dabei. Der String, der bei dem Binding ausgegeben wird, wird in mehrere Einträge zerlegt.


    <TreeView>
        <TreeViewItem ItemsSource="{Binding Path=name}" Header="Root"/>
    </TreeView>


        public String name
        {
            get { return _name; }
            set { _name = value; }
        }

Beim Debuggen hängt alles noch zusammen. Weiß einer Rat? 😃

danke, weeska

3.430 Beiträge seit 2007
vor 12 Jahren

Hallo weeska,

willkommen bei myCSharp.de

Du hast einfach den String an den TreeView gebunden.
Ein String ist eine Zeichenkette (Liste von Chars) und der Treeview hat jedes Element in der Liste einzeln angezeigt.

Es macht aber auch recht wenig Sinn einen String an den TreeView zu binden.
Verwende da besser eine ObservableCollection<String> um eine Liste von Strings an den Treeview binden zu können.
Dann müsste das auch richtig angezeigt werden.

Gruß
Michael

w
weeska Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren

Danke erstmal 😃

Die Vermutung hatte ich auch schon, dass es die Strings deswegen zerlegt.
Momentan hab ich halt eine Liste von Objekten (Institute) die jeweils einen Namen haben. Ich kann demnach die Institute wie gewollt ins TreeView hängen.

Nun fehlt mir der Sprung vom Institut zu dessen Namen. Bin ich da mit einem DataTemplate auf dem richtigen Weg, oder gibts einen "kürzeren"?

Edit: Ich könnte natürlich toString überschreiben, aber das ist ja nicht so das Wahre...

3.430 Beiträge seit 2007
vor 12 Jahren

Hallo weeska,

ja das DataTemplate bzw. HierarchicalDataTemplate ist ein Weg.

Du könntest es auch mit dem DisplayMemberPath machen.
Dieser ist perfekt wenn du nur einfach eine Eigenschaft des Objektes anzeigen lassen willst.

Gruß
Michael

w
weeska Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren

DisplayMemberPath, genau! Wenn man zuviel an einem Tag liest, vergisst man die Hälfte wieder 😃

Danke, Problem gelöst 😃