ich einige Daten aus mehreren Datenbanken abfragen aufzulisten und sie in einem zweidimensionalen String Array wie folgt speichern:Bind zweidimensionalen String-Array Ansicht in WPF
string[databaseID,fieldID]
... wo fieldID = 0 steht der Name des Feldes
Die Anzahl der Datenbanken variiert und kann zwischen mindestens einer und einer undefinierten Zahl liegen. Die Anzahl der Felder ist festgelegt.
Ich möchte eine Spalte für die Feldnamen und eine Spalte für jede Datenbank-ID haben. Jede Zeile sollte die Daten eines bestimmten Feldes jeder Datenbank enthalten. Es sollte beispielsweise wie folgt aussehen:
FieldName | Database1 | Database2 | Database3
----------|-----------|-----------|-----------
Name1 | A | B | A
----------|-----------|-----------|-----------
Name2 | 1 | 2 | 3
Wie kann ich das tun?
Für die Spaltenüberschriften erstellen, ich dies bereits haben:
GridView gridView = new GridView();
gridView.AllowsColumnReorder = true;
GridViewColumn gvc1 = new GridViewColumn();
gvc1.DisplayMemberBinding = new Binding("");
gvc1.Header = "Feldname";
gvc1.Width = 100;
gridView.Columns.Add(gvc1);
for (int i = 0; i < databases.Count; i++)
{
GridViewColumn gvc = new GridViewColumn();
gvc.DisplayMemberBinding = new Binding("Path=Row[" + (i + 1) + "]"); //Still not sure, wether this is okay
gvc.Header = databases[i].DisplayName;
gvc.Width = 100;
gridView.Columns.Add(gvc);
}
lvBasic.View = gridView;
Der XAML Teil I siehe ist ziemlich einfach:
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<ListView Name="lvBasic">
</ListView>
</ScrollViewer>
UPDATE: Ich dachte, es würde keine Rolle, Also habe ich einen Aspekt meines Problems ausgelassen. Ich muss die Daten von Datenbank1 mit allen anderen Datenbanken vergleichen und benötige daher dieses Layout oder ein anderes Layout, das für diese Aufgabe geeignet ist.
Wäre es nicht viel einfacher, ein neues Objekt mit den Array-Daten zu erstellen und einfach zu gruppieren? Das könnte die Lesbarkeit auch verbessern – lokusking
Was meinst du damit? –
Das Ding, nach dem Sie suchen, ist ein 'PivotGrid'. Leider ist dies nicht eingebaut, aber es gibt viele Unternehmen, die solche Möglichkeiten in ihren Frameworks anbieten (Telerik, Infragistics, DevExpress, etc). Unnötig zu sagen, dass du sie nicht kostenlos bekommst :( – lokusking