C# WPF DataGrid - Expand/Collapse all Groups


puscher

Grünschnabel
Nach einer langen suche im Internet bin ich zu dem Schluss gekommen, dass das WPF DataGrid keinerlei Funktion zum Expanding/Collapsing von Gruppen besitzt. Nun ist meine Frage, ob sich hier damit jemand aus kennt und mir helfen kann.
Ich habe ein DataGrid, dass an eine ICollectionView gebunden ist. Diese ICollection hat eine GroupDescription, welche die Items auch wunderbar gruppiert. Nun möchte ich in meinem WPF Fenster 2 Buttons haben, der eine soll alle Gruppen in dem DataGrid öffnen, der andere soll alle schließen.
Ich habe gesehen, dass es diese Funktionalitäten in Silverlight und Windows Forms gibt, aber ich benötige diese Funktionalität bei dem WPF DataGrid. Wäre schön, wenn mir hier jemand weiterhelfen könnte.
 

Nico Graichen

aka gemballa
Hi

Es ist zwar etwas umständlich, aber den Expander jeder Gruppe kommst du an die Info, ob die Gruppe offen ist oder geschlossen (IsExpanded). Über dieses Property kann auch gesetzt werden.

Alternativ kannst du dir die Grids z.b. von Infragistics mal anschauen, ob die diese Funktion (einfacher) bieten
 

puscher

Grünschnabel
Das Problem ist, wie komme ich an die Expander dran. Auch dazu habe ich keinerlei Funktionalität gefunden, sonst wäre das ja nicht das Problem gewesen.
 

puscher

Grünschnabel
Ich denke, dass du dich hier auf den XAML Code beziehst, doch darum geht es nicht.
Ich brauche im Grunde Funktionalitäten, die in C# verwendet werden können um die Gruppen zu schließen (nicht entfernen) oder zu öffenen (nicht hinzufügen).
In Silverlight gibt es dafür z.B. DataGrid.CollapseRowGroup, doch diese Funktion gibt es in WPF leider nicht.
 

puscher

Grünschnabel
Habe mittlerweile eine Lösung gefunden.
Ich habe in meiner xaml Datei ein weiteres Style definiert und das dann dem Datagrid zugewiesen.
 

Nico Graichen

aka gemballa
Sehr schön!

Kannst du hier bitte ein kleines Beispiel schreiben, was machen machen muss? Dann hat die Nachwelt auch die Lösung :)

Noch schöner wäre es, wenn du ein kleines Tutorial verfassen und hier einreichen würdest :)