仅在实体对象的 DataGrid 中显示某些列
Posted
技术标签:
【中文标题】仅在实体对象的 DataGrid 中显示某些列【英文标题】:Only display certain columns in DataGrid from an Entity Object 【发布时间】:2012-03-14 05:16:30 【问题描述】:我正在尝试在 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)。尝试在对象中选择某些属性时,我会返回字符串并且返回语句会抱怨。有没有办法选择 MovieTable 的某些成员在数据网格上显示?也许指定我想显示的列?看起来很简单,但我想我还不够好!!!!
【问题讨论】:
【参考方案1】:您需要指定 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 可能有用。
【讨论】:
以上是关于仅在实体对象的 DataGrid 中显示某些列的主要内容,如果未能解决你的问题,请参考以下文章
实体对象不能被多个 IEntityChangeTracker 实例引用 编辑 DataGrid 行