如何将数据添加到DataGridView
我有一个类似的结构
X={ID="1", Name="XX", ID="2", Name="YY" };
如何将此数据转储到两列的DataGridView
gridView就像
ID | Name
我们可以使用LINQ来做到这一点。 我是DataGridView
新手Pleaese帮我做这个..
提前致谢
首先,您需要向datagrid添加2列。 你可以在设计时做。 请参阅Columns属性。 然后根据需要添加行。
this.dataGridView1.Rows.Add("1", "XX");
我们假设您有一个这样的类:
public class Staff { public int ID { get; set; } public string Name { get; set; } }
并假设您已将DataGridView
拖放到表单中,并将其命名为dataGridView1。
您需要一个BindingSource来保存数据以绑定DataGridView
。 这是你如何做到的:
private void frmDGV_Load(object sender, EventArgs e) { //dummy data List lstStaff = new List (); lstStaff.Add(new Staff() { ID = 1, Name = "XX" }); lstStaff.Add(new Staff() { ID = 2, Name = "YY" }); //use binding source to hold dummy data BindingSource binding = new BindingSource(); binding.DataSource = lstStaff; //bind datagridview to binding source dataGridView1.DataSource = binding; }
我最喜欢的方法是使用名为“Map”的扩展函数:
public static void Map(this IEnumerable source, Action func) { foreach (T i in source) func(i); }
然后你可以像这样添加所有行:
X.Map(item => this.dataGridView1.Rows.Add(item.ID, item.Name));
LINQ是一种“查询”语言(即Q),因此修改数据超出了其范围。
也就是说,您的DataGridView
可能绑定到ItemsSource
,可能是ObservableCollection
类型或类似。 在这种情况下,只需执行类似X.ToList().ForEach(yourGridSource.Add)
(这可能必须根据网格中的源类型进行调整)。
你应该像这样形成你的代码
DataGridView.DataSource = yourlist;
DataGridView.DataBind();
- 发生了托管调试助手’FatalExecutionEngineError’
- Windows窗体:通过部分透明的always-on-top窗口传递点击次数
- NetworkError:WCF中不允许405方法
- ASP.NET MVC:在不影响性能的情况下路由自定义slug
- 如何使用Parallel.For / ForEach获得最大性能? (包括性能时间)
- 如何使用AES获取相同纯文本的不同密文
- 提取相似前缀和后缀Bug之间的标题
- 将子进程的输出(stdout,stderr)重定向到Visual Studio中的“输出”窗口
- 如何使用C#Desktop Application在MPEG或AVI文件中记录WebCamvideo