当我尝试将表加载到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;
答案 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之后执行。