仅从实体对象显示DataGrid中的某些列

时间:2012-02-23 18:43:21

标签: c# sql wpf xaml

我正在尝试使用VS2010中创建的实体模型上的SQL查询填充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();
    }

导入数据库时​​会自动生成对象MovieTable,但是当它显示在网格上时,它会显示比我想要的更多的信息(id,EntityKey和EntityState)。试图在对象中选择某些属性我得到了字符串,并返回return语句。有没有办法选择MovieTable的某些成员在数据网格上显示?也许指定我想要显示的列?看起来很简单,但我想我还不够好想出来!!!!

1 个答案:

答案 0 :(得分:19)

您需要指定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可能有用。