2016-03-31 19 views
0

Ich habe ein StackPanel von Datagrids, die Daten über verschiedene Dinge enthalten. Ein Benutzer sollte in der Lage sein, auf eines dieser Datagrids zu klicken, und dieses Datagrid sollte expandieren und die vier Datagrids auf dem Bildschirm ersetzen. Wenn Sie auf das erweiterte Raster klicken, wird der Bildschirm auf die vorherige Anzeige von vier Datenrastern zurückgesetzt.Moving Datagrid zur Laufzeit WPF

Ich habe versucht, das Top-Grid im Backend (ich glaube nicht, dass dies eine Verletzung von MVVM ist, da es rein mit dem Display handelt, aber ich könnte falsch liegen) mit dem ausgewählten Raster, was nicht tut scheinen zu arbeiten. Ich habe auch versucht, die Gitter zu verstecken, um zu sehen, ob das funktionieren würde. Ich habe hier und auch anderswo verschiedene Themen gefunden, die über das Verschieben von Spalten und/oder Zeilen zur Laufzeit sprechen, aber nichts über das Verschieben eines ganzen Datagrid zur Laufzeit.

Antwort

0

Ich würde vorschlagen, Ihre UI-Ansicht als Gitter mit Spalten-/Zeilengrößen zu erstellen, die an ihren Inhalt gebunden sind, und eine Backend-Eigenschaft zu verwenden, um zu bestimmen, ob die verschiedenen Datageräte sichtbar oder kollabiert sein sollten. Dann passt sich die Benutzeroberfläche an das gewünschte Szenario an.

Eine andere Alternative besteht darin, ein paar Ansichten zu haben, die die explizite Anordnung der gewünschten Steuerelemente aufweisen und dann ein äußeres ContentControl haben, dessen Content-Eigenschaft aufgrund der Klicks zu dem einen oder anderen geändert wird.

Ich würde die ehemalige obwohl Einfachheit bevorzugen, wenn machbar in Ihrem Layout.

+0

Danke, das scheint für dieses Problem zu funktionieren. –

Verwandte Themen