Datagrid -, Merge/Kombinieren Zeilen, Zellen und Spalten
Ich versuche zu acomplish genau das, was diese Frage beantragt, aber leider ist das code-Beispiel, das war als Antwort ist Weg, und ich bin auch nicht mit WPF-Toolkit, hier ist die Frage, die er Tat:
Ich versuche, Zusammenführen von Zellen im WPF-toolkit datagrid .Ich bin versucht, etwas zu tun, wie im Bild unten gezeigt.Wir können dies tun, in Winforms datagrid.Aber wie dies zu tun ist die Verwendung von WPF toolkit datagrid ?.Oder gibt es irgendeine alternative steuert..?
Können wir machen das mit listview oder listbox..? Oder ist es kostenlos
Steuerelemente zur Verfügung, die diese Funktionalität ?
Fand ich mehrere Antworten, die das geschafft haben mit dem DataGridView-Steuerelement, aber ich will nicht zu verwenden, Bilden Objekte in einem WPF-Projekt, gibt es eine Möglichkeit zu acomplish das?
- prntscr.com/3xzotz habe ich umgesetzt, dies mit listbox.ich werde fügen Sie code hinzu, falls Sie dies benötigen
- Würde mich freuen wenn Ihr es teilen, in der Lage sein könnte, um meinen Kopf herum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Recource
xaml
c#
Für eine verbundene Zelle, binden seine
Margin
und es auf einen negativen Wert, der gleich der Summe der Breite/Höhe der verbundenen Zellen zusammengeführt - dann die Zelle wird verschütten über und auf der Oberseite der benachbarten Zellen.Sind die Bindungen indiziert, weil
CellMargins
ist einObservableCollection
vonThickness
. Das viewmodel ist die Zeile-Ebene, so dass jede Spalte bindet an einen anderen index.Bevor diese bekommt downvoted, lassen Sie mich sagen, dies kann dazu führen, dass einige unerwünschte visuelle Macken. Immer diese perfekt arbeiten erfordert ein bisschen code-hinter, wie:
Die Zelle Margen " negative Werte müssen aktualisiert werden, wenn sich eine Spaltenbreite ändert, so behandelte ich die datagrid -
LayoutUpdated
event, wo ich Durchlaufen der Spalten, gemessen Ihrer aktuellenActualWidths
und aktualisiert die Ränder entsprechend. Ich ebenfalls update derBorderThickness
zum ein - /ausblenden Zelle Grenzen wie nötig. Deaktivieren Sie die Auswahl markieren Sie die Zellen, die das "versteckte" ist ein weiterer trick.Hinweis: dies bedeutet, halten Sie den überblick, welche Zellen (D. H., die Zeile viewmodels und Spalte Indizes) möchten Sie zusammengeführt separat im code-behind.
Diese Methode ist kompliziert und wahrscheinlich auch nicht das einfachste für jede situation, aber ich fand es sinnvoll, für meine Zwecke. Ich brauchte eine
Datagrid
wo der Benutzer eine Fusion/Verschmelzung der Zellen rückgängig machen und erstellen/löschen von Spalten, Excel-ähnlichen. Außerdem wollte ich mit dem stickDataGridTextColumns
(anstelle des benutzerdefiniertenTemplateColums
) wegen Ihrer built-in-Funktionalität (Tastatur erkannt werden edit-Kommandos mit copy/paste, etc.)