2012-02-23 17 views
6

Estoy intentando llenar un DataGrid con una consulta SQL en un modelo de entidad creado en VS2010.Mostrar solo ciertas columnas en DataGrid desde un objeto Entity

public List<MovieTable> LoadMoviesMethod() 
    { 
     ObjectQuery<MovieTable> _movies = dataEntities.MovieTables; 

     var query = 
      from MovieTable in _movies 
      //where MovieTable.Rating == "R" 
      //orderby MovieTable.id 
      select MovieTable; 

     return query.ToList(); 
    } 

El MovieTable objeto se genera automáticamente al importar mi base de datos, pero cuando se muestra en la parrilla se nota más información de la que me gustaría (id, y EntityKey EntityState). Al tratar de seleccionar ciertas propiedades en el objeto, recibo cadenas y la sentencia de devolución se queja. ¿Hay alguna manera de seleccionar ciertos miembros de la MovieTable para mostrarlos en la cuadrícula de datos? ¿Tal vez especifique las columnas que me gustaría mostrar? Parece bastante simple, pero creo que no soy lo suficientemente bueno para resolverlo !!!!

Respuesta

14

Debe especificar AutoGenerateColumns = "False" y luego especifique las columnas que necesita explícitamente. Algo así como

<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Id" Binding="{Binding Id}"/> 
      <DataGridTextColumn Header="Name" Binding="{Binding Name}"/> 
      ... etc 

Hay algunos tipos diferentes de columna - texto, cuadro combinado, el check-box, hipervínculo, plantilla ...

Este blog post pueden ser útiles.

+0

Muchas gracias - ¡explicación muy clara! – gbk

Cuestiones relacionadas