2012-02-23 17 views
6

Próbuję wypełnić DataGrid kwerendą SQL w modelu jednostki utworzonym w VS2010.Wyświetlane są tylko niektóre kolumny w DataGrid z obiektu podmiotu

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(); 
    } 

Przedmiotem MovieTable jest generowany automatycznie, kiedy zaimportować bazę danych, ale gdy wyświetla na starcie pokazuje więcej informacji niż chciałbym (id, EntityKey i EntityState). Próbując wybrać pewne właściwości w obiekcie, otrzymuję ciągi znaków i narzekanie return. Czy istnieje sposób, aby wybrać niektórych członków MovieTable do wyświetlenia na datagrid? Może określić kolumny, które chciałbym wyświetlić? Wydaje się dość proste, ale myślę, że nie jestem wystarczająco dobry, aby to zrozumieć !!!!

Odpowiedz

14

Musisz określić AutoGenerateColumns = "False", a następnie określić kolumny, które potrzebujesz jawnie. Coś jak

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

Istnieje kilka różnych typów kolumn - tekst, combo-box, check-box, hiperłączy, szablon ...

Ten blog post mogą być użyteczne.

+0

Wielkie dzięki - bardzo jasne wyjaśnienie! – gbk

Powiązane problemy