WPF DataGrid kann nicht Fügen Sie eine Zeile hinzu, wenn die Datenquelle leer ist
CanUserAddRows="True"
nur 'funktioniert', wenn es bereits Daten in der ItemsSource
des DataGrid
. Wenn es passiert einfach so, dass es keine Zeilen in der ursprünglichen Liste der Artikel, dann die DataGrid
nicht angezeigt, eine placeholder
Zeile für die Eingabe neuer Elemente, obwohl ich eingestellt habe CanUserAddRows="True"
. Warum?!
Vielen Dank im Voraus,
Trindaz
- auch, was passiert ist, Sie kann nicht nach rechts scrollen, um zu sehen, Spalten, die aus dem Bildschirm, verursachen Sie keine horizontalen Scrollbalken ohne Elemente.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies scheint ein bekanntes Problem mit WPF DataGrid. Siehe Diskussion hier (ab dem 4. Kommentar) Auch scheint es behoben sein .net 4. Ich habe einige tests für dieses Problem auf 3.5 und 4 (beta2) - frameworks. Pls, siehe Ergebnisse unten:
Zuerst definierte ich 3 Arten von Element-Sammlungen:
wo TestGridItem unter:
.net 3.5
TestGridItems0 und TestGridItems1 nicht zeigen Sie eine leere Zeile für eine leere Sammlung, wo TestGridItems2 funktionierte gut.
.net 4
nur TestGridItems0 nicht zeigen, die Linie der leere Sammlung; anderen 2 haben einwandfrei funktioniert.
xaml-Code für das grid:
unten ist, wie die Elemente Quelle zugewiesen wurde:
hoffe das hilft, Grüße
.ToList()
Konvertierung das problem gelöst. Vielen Dank für den Hinweis.Fügt ein leeres Element, um Ihre ItemsSource-und dann entfernen Sie es. Sie haben um CanUserAddRows true zurück, nachdem dies zu tun. Ich lese diese Lösung hier: (Beiträge von Jarrey und Rick Roen)
Hatte ich dieses problem wenn ich die ItemsSource an eine DataTable die Standardansicht und der Ansicht war leer. Die Spalten definiert wurden, obwohl es sollte also in der Lage gewesen, Sie zu bekommen. Heh.