2016-06-01 13 views
0

Ich möchte mit Datagrid mit Informationen füllen, die ich von einer Linq-Abfrage bekomme. Das Datagrid Auto generiert seine SpaltenFill Grid mit einer einzigen Spalte von linq Abfrage

Mit db A New DataClassesDataContext

 Dim fillGrid = From info In db.tableName 
         Select info.Description 
     DataGrid1.DataSource = fillGrid 
     DataGrid1.DataBind() 
    End Using 

Dieser Code eine Spalte „Länge“

Wenn ich eine weitere Spalte hinzufügen, wähle dann erzeugen sie die Spalten richtig, da die angerufene erzeugt Liste hat -> Description = "": ID = ""

Wie kann ich die Linq den Spaltennamen mit einer einzigen Spalte generieren lassen?

Antwort

1

Linq to sql erstellt anonymen Typ, wenn Ihre Auswahl nicht von einem bekannten Typ ist. In Ihrem Fall handelt es sich um eine Liste mit anonymen Zeichenketten. Bindung an .net funktioniert nur für Eigenschaften und nicht für Felder. Die Standardeigenschaft für die Liste der Zeichenfolge ist also die Length-Eigenschaft, die verwendet wird. Statt dessen würde ich Ihnen vorschlagen, eine Klasse mit einem String-Eigenschaft mit dem Namen Beschreibung zu erstellen und als dieser Klasse Objekt wähle:

Public Class StringCollection 
    Private _Description As String 
    Public Property Description() As String 
     Get 
      Return _Description 
     End Get 
     Set(ByVal value As String) 
      _Description = value 
     End Set 
    End Property 
End Class 

Dann machen Sie die Auswahl:

Dim fillGrid = From info In db.tableName 
          Select New StringCollection With {.Description = info.Pershkrimi} 
Verwandte Themen