1

当我尝试将表格加载到 DataGrid 控件中时,它显示以下错误

无法将类型“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;
4

3 回答 3

1

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

List<Employee> lst = new List<Employee>();
Emplyee emp1 = new Employee();
lst.Add(emp1);
grid.ItemsSource = lst;
于 2012-06-29T11:37:09.423 回答
1

ItemsSource属性需要是IEnumerable某种类型。

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

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

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

于 2012-06-29T11:39:26.557 回答
0

可能你只需要设置

grd_1.ItemsSource = MyDB.Employees;

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

于 2012-06-29T11:42:57.353 回答