2009-05-13 4 views
5

Ich kann mein DataGrid in .NET 3.5 CF an eine List() binden, aber ich bin nicht in der Lage, die Spalten durch Angabe ihrer Breite zu formatieren. Unten ist der Code, der aussieht, als sollte es funktionieren, aber nicht. Ich bin ziemlich sicher, dass ich den MappingName nicht korrekt setze, da alle Tutorials Sie auf den Namen Ihrer DataTable festlegen, aber ich bin nicht an eine DataTable gebunden, so dass ich nicht sicher bin, was ich tun soll.Was ist der DataGrid-Zuordnungsname für eine nicht DataTable-DataSource?

  grdBatch.DataSource = InventoryItems; 

     DataGridTableStyle tableStyle = new DataGridTableStyle(); 
     tableStyle.MappingName = InventoryItems.ToString(); 
     DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn(); 
     tbcName.Width = 400; 
     tbcName.MappingName = "SERIAL_ID"; 
     tbcName.HeaderText = "SERIAL_ID"; 
     tableStyle.GridColumnStyles.Add(tbcName); 
     grdBatch.TableStyles.Clear(); 
     grdBatch.TableStyles.Add(tableStyle); 

grdBatch ist ein Datagrid und InventoryItems ist eine Liste der POCOS (Plain alten C# Objekte).

Antwort

15

Wechsel:

tableStyle.MappingName = InventoryItems.ToString(); 

zu

tableStyle.MappingName = InventoryItems.GetType().Name; 
+0

Das ist genau das, was ich schreiben wollte. +1. –

+0

arbeitete wie ein Charme. –

Verwandte Themen