2010-12-03 9 views
6

Estoy intentando vincular un DataGrid a una lista genérica en WPF.La mejor manera de vincular DataGrid a la lista genérica en WPF

Los siguientes resultados de código en filas en blanco para cada fila de datos en mi lista (es decir, si tengo 5 filas, muestra 5 filas, pero no muestra todos los datos en las células):

List<DataRow> DataBindingSource = GuestList.Where(row => 
    (row.Field<long>("FK_GROUP_ID") == Int64.Parse(cmbGroup.SelectedValue.ToString())) && 
    (row.Field<long>("FK_AGE_GROUP_ID") != (int)L_Age_Group.Child)) 
    .ToList(); 

gvwAddultDetails.ItemsSource = DataBindingSource; 

Si convierto mi lista de objetos a DataTable, funciona (muestra datos). Por ejemplo:

List<DataRow> DataBindingSource = GuestList.Where(row => 
    (row.Field<long>("FK_GROUP_ID") == Int64.Parse(cmbGroup.SelectedValue.ToString())) && 
    (row.Field<long>("FK_AGE_GROUP_ID") != (int)L_Age_Group.Child)) 
    .ToList(); 

gvwAdultDetails.ItemsSource = DataBindingSource.CopyToDataTable().DefaultView; 

Pero si tuviera un List<DataRow>, ¿cómo iba a convertirlo en DataTable?

¿Cuál es la mejor práctica para vincular un DataGrid a una `Lista 'en WPF?

Respuesta

5

Una forma de obligar a DataGrid lista genérica en WPF:

MainWindow.xaml.cs

Grid.DataContext = DataBindingSource; 

MainWindow.xaml

<DataGrid 
    AutoGenerateColumns="True" 
    ItemsSource="{Binding}" 
    Name="Grid" /> 
</Grid> 

Pero probablemente ganó no funciona con DataRow, porque en WP F, si desea vincularse a algo, debe ser una propiedad.

- Otros Pensamientos -

He aquí cómo usted puede convertir una lista genérica a un DataTable:

cómo enlazar DataGrid a la lista genérica en WPF:

Especialmente (una gran característica en WPF):

Cuestiones relacionadas