0

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

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

3 回答 3

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

于 2012-06-29T06:18:48.650 回答
0

ItemStringFormat获取或设置一个复合字符串,该字符串指定在 ItemsControl 中的项目显示为字符串时如何设置它们的格式。

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

grd_8.ItemsSource = top3;

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

于 2012-06-29T06:19:29.617 回答
0

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

grd_8.ItemStringFormat = top3;

您需要将结果分配给 ItemSource

grd_8.ItemSource = top3;
于 2012-06-29T06:20:14.797 回答