我试图将表的 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;
我试图将表的 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;
改变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
ItemStringFormat获取或设置一个复合字符串,该字符串指定在 ItemsControl 中的项目显示为字符串时如何设置它们的格式。
为什么要将 LINQ 结果分配给 ItemStringFormat。我相信您正在寻找ItemsSource属性
grd_8.ItemsSource = top3;
此外,要从查询中选择前三个记录,请使用Take(3)
notTake(2)
为什么要将结果分配给 ItemStringFormat?
grd_8.ItemStringFormat = top3;
您需要将结果分配给 ItemSource
grd_8.ItemSource = top3;