Hallo,
über ein hierarchical WPF-Treeview...
(IEnumerable<HierarchyNode<TEntity>> CreateHierarchy<...)
...werden alle Werte mit 0 bzw. leerer Guid immer direkt "als erstes" angezeigt. Es gibt daher mehrere Root-Werte:
+Eintrag1 (ID=0 bzw. Guid=leer)
+Eintrag 1a (ID=1 bzw. Guid=73932...)
+Eintrag2 (ID=0 bzw. Guid=leer)
die ID bzw. Guid-Werte kommen aus einer Tabelle und können dort nicht verändert werden. Für Eintrag1 und Eintrag2 ist das (ID=0 bzw. Guid=leer).
Es soll aber nun ein übergeordnetes Root-Node angezeigt werden und erst daran die beiden Einträge mit der ID=0 bzw. leeren Guid:
+Root-Eintrag
+Eintrag1 (ID=0 bzw. Guid=leer)
+Eintrag 1a (ID=1 bzw. Guid=73932...)
+Eintrag2 (ID=0 bzw. Guid=leer)
Wenn ich nun in meine ObservableCollection, die die zwei Einträge enthält einen weiteren Eintrag "Root-Eintrag" mit ID=0 bzw. Guid=leer einfüge, wird es auf der gleichen Ebene angezeigt wie Eintrag1 und Eintrag2.
Null funktioniert als ID bzw. Guid leider nicht.
Direkt nachdem die Werte in das Treeview gefüllt werden, ist ja nichts ausgewählt. Dieses "Nichts" könnte evtl. sichtbar gemacht werden?
🤔
Danke!
Mfg
Michael
PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!
:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]
Hallo,
die entitäten direkt an die ansicht weiter zu geben, bringt einige schwierigkeiten mit sich, wenn es um anzeigen geht. ich verwende für solche fälle eine einfache wrapper-klasse, welches mein datenobjekt und einige eigenschaften enthält, die ich an die entsprechenden controls binden kann, damit habe ich die möglichkeit bestimmte verhaltensweisen zu steuern ... zb IsSelected oder ähnliches.
die manipulation des treeview-controls aus dem code behind ist sehr stark eingeschränkt, da wpf auf einer andere technischen idee basiert, als winforms, die alternative ist du verwendest entsprechend trigger in deinem datatemplate.
Wenn's zum weinen nicht reicht, lach drüber!
??
Fürs leichtere Verständis denk ich:
// Source vom TreeView
public ObservableCollection<MyEntity> MyEntities {get; set;}
public class MyEntity
{
public string EntityText {get; set;}
public bool IsSelected {get; set;}
public bool IsExpanded {get; set;}
public ObservableCollection<MyEntity> SubEntities {get; set;}
}
Um jetzt einen übergeordneten Eintrag hinzuzufügen, müßtest einfach ein neues 'MyEntity' erstellen und unter 'SubEntities' die 2 leeren Einträge von dir einfügen. Das sollte es normal gewesen sein.
An den Daten selbst müßtest normal nichts ändern müssen...
Hoffe ich hab das richtig verstanden... 😃
Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄
Hallo Parso und Hallo Thomas!
Danke vielmals für die Lösungsansätze! 👍 👍
Ich bin erst jetzt vom Kunden zurück. Inzwischen habe ich es durchgeboxt, daß nun doch die Root-Werte in die DB eingefügt werden dürfen. Ich ändere daher die IDs der derzeit ersten Einträge direkt in der Datenbank. Gut das das nun doch klappt, ansonsten müsste ich die anderen Lösungswege gehen.
Schöne Grüße!
Mfg
Michael
PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!
:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]