加载项目时DataGrid中的问题

时间:2012-06-29 06:09:18

标签: c# wpf linq-to-sql

我试图将表的top3记录加载到DataGrid中它显示错误无法将类型'System.Linq.IQueryable'隐式转换为'string'。下面的代码我写的

MyDatatBaseDataContext Mydb = new MyDatatBaseDataContext();    
var top3 = (from t in Mydb.GetTable<student>() select t).Take(2);
grd_8.ItemStringFormat = top3;

3 个答案:

答案 0 :(得分:0)

更改var top3 = (from t in Mydb.GetTable<student>() select t).Take(2);

List<student> top3 = (from t in Mydb.GetTable<student>() select t).Take(2).ToList();

如果grd_8.ItemStringFormat是一个字符串,那么你必须使用StringBuilder将yr List转换为字符串

但您可以将List<student> top3分配给您的网格ItemsSource / DataSource

答案 1 :(得分:0)

  

ItemStringFormat获取或设置指定的复合字符串   如果显示为ItemsControl中的项目,如何格式化   字符串。

为什么要将LINQ结果分配给ItemStringFormat。我相信您正在寻找ItemsSource属性

grd_8.ItemsSource = top3;

此外,要从查询中选择前三个记录,请使用Take(3)而不是Take(2)

答案 2 :(得分:0)

为什么要将结果分配给ItemStringFormat?

grd_8.ItemStringFormat = top3;

您需要将结果分配给ItemSource

grd_8.ItemSource = top3;