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
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
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...
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
DisplayMemberPath, genau! Wenn man zuviel an einem Tag liest, vergisst man die Hälfte wieder 😃
Danke, Problem gelöst 😃