Il linguaggio Visual Basic di Microsoft
 

Sort datagridview con LinQ Query

Andrea (Work) 17 Giu 2015 17:12
Ciao a tutti,
mi sembra di aver capito che se ho una mia query LinQ e la voglio
agganciare ad un datagridview es. con Query.ToList perdo il l'autosort
della griglia.

Qual è la strada migliore per avere il sort?
Ho visto che si può creare una classe SortableBindingList(of T), ma il mio
problema è che essendo una query dinamica non ha un tipo, ma un sottotipo
di attributi di una classe.
Per cui non posso fare

|Dim lr = From en In Names Where en.count >= 80
|Me.DataGridView1.DataSource = New SortableBindingList(Of PopName)(lr.ToList)
|
|MessageBox.Show("dgv is now sortable,click the coolumn headers to try")

Perchè di fatto la mia query è più complessa.

Qualche idea?
Grazie
Andrea (Work) 17 Giu 2015 17:54
Il Wed, 17 Jun 2015 17:12:56 +0200, Andrea (Work) ha scritto:

>|Dim lr = From en In Names Where en.count >= 80
>|Me.DataGridView1.DataSource = New SortableBindingList(Of PopName)(lr.ToList)
>|
>|MessageBox.Show("dgv is now sortable,click the coolumn headers to try")
>
> Perchè di fatto la mia query è più complessa.
>
> Qualche idea?

Risolto parzialmente convertendo tutto in datatable, ma non mi piace
proprio:

| Public Shared Function DataTableFromIEnum(ien As IEnumerable) As DataTable
| Dim dt As New DataTable()
| For Each obj As Object In ien
| Dim t As Type = obj.[GetType]()
| Dim pis As PropertyInfo() = t.GetProperties()
| If dt.Columns.Count = 0 Then
| For Each pi As PropertyInfo In pis
| dt.Columns.Add(pi.Name, pi.PropertyType)
| Next
| End If
|
| Dim dr As DataRow = dt.NewRow()
| For Each pi As PropertyInfo In pis
| Dim value As Object = pi.GetValue(obj, Nothing)
| dr(pi.Name) = value
| Next
|
| dt.Rows.Add(dr)
| Next
|
| Return dt
| End Function

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio Visual Basic di Microsoft | Tutti i gruppi | it.comp.lang.visual-basic | Notizie e discussioni visual basic | Visual basic Mobile | Servizio di consultazione news.