Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在DataGrid控件中加载表?_C#_Wpf_Linq To Sql - Fatal编程技术网

C# 如何在DataGrid控件中加载表?

C# 如何在DataGrid控件中加载表?,c#,wpf,linq-to-sql,C#,Wpf,Linq To Sql,当我尝试将表加载到DataGrid控件时,它显示了以下错误 无法将类型“TRAINING.Employee”隐式转换为 “System.Collections.IEnumerable”。存在显式转换(正在进行) 你错过了一个演员吗 下面是我写的代码 MyDatatBaseDataContext MyDB = new MyDatatBaseDataContext(); Employee Add = new Employee(); Add.EmpID = 5039; Add.Age = 25; Ad

当我尝试将表加载到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;

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

List<Employee> lst = new List<Employee>();
Emplyee emp1 = new Employee();
lst.Add(emp1);
grid.ItemsSource = lst;
List lst=new List();
Employee emp1=新员工();
第一次增补(emp1);
grid.ItemsSource=lst;

项目资源属性必须是某种类型的
IEnumerable

所以如果你把代码的结尾改成

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

这可能会有所帮助,但是,您真的希望使用网格显示一名员工,并为每个属性显示一列吗?您真的希望每个属性都有一个名称-值对的网格吗?

可能您只需要设置

grd_1.ItemsSource = MyDB.Employees;

因为您的员工是一个
IEnumerable
。我不确定添加的项目是否会立即显示,但我认为最晚在提交更改后会显示。

网格的数据源应该实现IEnumerable,如列表