2012-02-23 25 views
6

Tôi đang cố gắng điền một DataGrid với truy vấn SQL trên Mô hình thực thể được tạo trong VS2010.Chỉ hiển thị các cột nhất định trong DataGrid từ đối tượng thực thể

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

Đối tượng MovieTable được tự động tạo ra khi tôi nhập cơ sở dữ liệu của tôi, nhưng khi nó sẽ hiển thị trên lưới nó cho thấy nhiều thông tin hơn tôi muốn (id, EntityKey và EntityState). Đang cố gắng chọn một số thuộc tính nhất định trong đối tượng mà tôi nhận được chuỗi và câu lệnh trả về bị khiếu nại. Có cách nào để chọn một số thành viên của MovieTable để hiển thị trên DataGrid không? Có thể chỉ định các cột tôi muốn hiển thị? Có vẻ đơn giản, nhưng tôi đoán tôi không đủ tốt để tìm ra nó !!!!

Trả lời

14

Bạn cần chỉ định AutoGenerateColumns = "False" và sau đó chỉ định các cột bạn yêu cầu một cách rõ ràng. Một cái gì đó như

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

Có một vài loại khác nhau cột - văn bản, hộp kết hợp, kiểm tra hộp, siêu liên kết, mẫu ...

blog post này có thể hữu ích.

+0

Cảm ơn rất nhiều - giải thích rất rõ ràng! – gbk

Các vấn đề liên quan