Main /

Data Grid Auf Dem Compact Framework

Data Grid Auf Dem Compact Framework

Das DataGrid auf dem .NET Compact framework für Pocket PC

Verstecken von Spalten im DataGrid beim Object-Binding

Problem

Wird das DataGrid nicht an ein DataTable Objekt gebunden sondern an eine Collection, womöglich noch an eine eigene Klasse die von einer anderen (möglicherweise generischen Collection) abgeleitet ist gibt es Probleme mit dem Mapping eines DataGridTableStyle. Normalerweise muss DataGridTableStyle.MappingName dem namen des DataTables entsprechen. Wird eine Collegtion gebunden, muß es der (case-sensitive) Typname sein. nur wie ist es bei einer generischen Collection?

Beispiel

// Customer ist eine einfache Klasse mit Properties für Name, Adresse, Plz und Ort
// DGcustomers ist das DataGrid des aktuellen formulars

customerlist = new BindingList<Customer>;
DGcustomers.DataSource = customerlist;

DataGridTableStyle ts = new DataGridTableStyle();
ts.MappingName = "BindingList`1";  // Mapping-Typ-Name der Generischen Collection - äußerst seltsam

DataGridTextBoxColumn col = new DataGridTextBoxColumn();
col.MappingName = "Id";
col.Width = 0;  // Eine Möglichkeit die Spalte zu verstecken ist eine Breite 0. Es gibt aber noch bessere, die werden später hier veröffentlicht ;-)
ts.GridColumnStyles.Add(col);

col = new DataGridTextBoxColumn();
col.MappingName = "Name";
col.HeaderText = "Firma";
col.Width = 70;
ts.GridColumnStyles.Add(col);

col = new DataGridTextBoxColumn();
col.MappingName = "Adresse";
col.HeaderText = "Adresse";
col.Width = 50;
ts.GridColumnStyles.Add(col);

col = new DataGridTextBoxColumn();
col.MappingName = "Plz";
col.HeaderText = "Plz";
col.Width = 30;
ts.GridColumnStyles.Add(col);

col = new DataGridTextBoxColumn();
col.MappingName = "Ort";
col.HeaderText = "Ort";
col.Width = 50;
ts.GridColumnStyles.Add(col);

DGcustomers.TableStyles.Add(ts);


 
Frische Änderungen | Menü editieren
zuletzt geändert am 12.03.2007 16:09 Uhr von Elsni
Edit Page | Page History