Ich habe alles versucht und bin nicht weitergekommen, also hoffe ich, dass mir jemand den Aha-Moment geben kann. Ich kann einfach nicht die Bindung erhalten, um die Daten im Datagrid erfolgreich zu ziehen.
Ich habe eine DataTable, die mehrere Spalten mit MyDataType
enthält %Vor%MyDataType hat 2 Eigenschaften (eine Zeichenkette, eine boolesche) Ich habe einen Test DataTable
erstellt %Vor%Ich habe ein WPF DataGrid, das ich meine DataTable zeigen möchte. Aber alles, was ich tun möchte, ist zu ändern, wie jede Zelle gerendert wird, um [TextBlock] [Schaltfläche] pro Zelle mit Werten anzuzeigen, die an das MyData-Objekt gebunden sind, und hier habe ich eine Menge Probleme.
Mein XAML sieht so aus
%Vor%Jetzt versuche ich nur einmal, die DataTable an das WPF DataGrid
zu binden %Vor% TextBlock und Button werden angezeigt, aber sie binden nicht, wodurch sie leer bleiben.
Könnte jemand mich wissen lassen, wenn sie eine Idee haben, wie man das repariert.
Dies sollte einfach sein, das ist es, was Microsoft uns glauben macht.
Ich habe die Column.CellTemplate
während des AutoGenerating
-Ereignisses gesetzt und bekomme immer noch keine Bindung.
Bitte helfen Sie !!!
Bearbeiten: Aktualisiert, um den Beitrag von Aran Mulholland zu reflektieren (siehe Kommentar)
Offenbar übergibt die DataGrid
die gesamte DataRowView
an jede Zelle. Deshalb funktioniert die Bindung nicht. Ihre DataTemplate
erwartet, dass DataContext
vom Typ MyData
ist, aber stattdessen vom Typ DataRowView
ist. Meine vorgeschlagene (etwas hack-ish) Problemumgehung, um das gewünschte DataContext
zu erhalten, ist ein benutzerdefiniertes DataGridTemplateColumn
zu erstellen, das das notwendige Element aus dem DataRowView
extrahiert. Der Code ist unten:
Hinweis: Dieser Ansatz scheint nur bei deaktivierter Containervirtualisierung oder im Standardmodus zu funktionieren. Wenn VirtualizationMode festgelegt ist Die Vorlage wird nicht wiederverwendet.
Tags und Links wpf data-binding binding datatable datagrid