如何在DataGrid控件中加载表?

时间:2012-06-29 11:31:17

标签: c# wpf linq-to-sql

当我尝试将表加载到DataGrid Control时,它显示以下错误

  

无法隐式转换类型'TRAINING.Employee'   'System.Collections.IEnumerable'。存在显式转换(是   你错过了一个演员?)。

代码下面我写了什么

MyDatatBaseDataContext MyDB = new MyDatatBaseDataContext();
Employee Add = new Employee();
Add.EmpID = 5039;
Add.Age = 25;
Add.Address = "West Street";
MyDB.Employees.InsertOnSubmit(Add);
MyDB.SubmitChanges();

grd_1.ItemsSource =Add;

3 个答案:

答案 0 :(得分:1)

我认为你应该将网格绑定到员工列表,如下所示:

List<Employee> lst = new List<Employee>();
Emplyee emp1 = new Employee();
lst.Add(emp1);
grid.ItemsSource = lst;

答案 1 :(得分:1)

ItemsSource属性必须是某种类型的IEnumerable

因此,如果您将代码的结尾更改为...

IEnumerable<Employee> adds = new [] { Add };
grd_1.ItemsSource = adds;

这可能会有所帮助,但是,您是否真的想使用网格来显示一个员工,每个属性都有一列?你真的想要为每个属性建立一个名称值对的网格吗?

答案 2 :(得分:0)

可能你只需要设置

grd_1.ItemsSource = MyDB.Employees;

因为您的Table<TEntity>员工是IEnumerable。我不确定添加的项目是否会立即显示,但我认为最迟会在SubmitChanges之后执行。