2012-02-23 71 views
6

我想用VS2010中創建的實體模型上的SQL查詢填充一個DataGrid。只從一個實體對象顯示DataGrid中的某些列

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

當我輸入我的數據庫,但是當它顯示在網格上它顯示的信息越多,比我想(ID,和的EntityKey EntityState)自動生成的對象MovieTable。試圖選擇對象中的某些屬性,我返回字符串並返回語句抱怨。有沒有辦法選擇MovieTable的某些成員以顯示在數據網格上?也許指定我想要顯示的列?看起來很簡單,但我想我不夠好,搞清楚了!

回答

14

您需要指定AutoGenerateColumns =「False」,然後指定明確需要的列。像

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

東西有幾種不同的列類型 - 文本,組合框,複選框,超鏈接,模板...

blog post可能是有用的。

+0

非常感謝 - 非常明確的解釋! – gbk 2014-07-13 07:12:43

相關問題