![](/img/trans.png)
[英]c# Datagridview (Winform) cell coloring based on adjacent cell value
[英]Winform C# Update DataGridView on DataTable Cell value changed
我有DataGridView和DataTable,DataTable在DataGridView中被分配为数据源。
当我更改DataTable中的某些值时,它不会在视图上更新。
那我该怎么做到
我尝试了以下操作
示范代码
DataGridView datagrid = new DataGridView();
DataTable dt = new DataTable();
dt.Columns.Add("No");
dt.Columns.Add("Name");
for (int i = 1; i <= 10; i++)
{
DataRow row = dt.NewRow();
row[0] = i;
row[1] = "ABC";
dt.Rows.Add(row);
}
datagrid.DataSource = dt;
这是我上面的代码
当我更改DataTable中的某些值时,它不会反映在DataGridView中
dt.Rows[0][1] = "XYZ";
所以请帮助我。
我能够做到这一点,这工作:
private DataTable _dt = new DataTable();
private void Form1_Load(object sender, EventArgs e)
{
_dt.Columns.Add("LongText");
DataRow dr = _dt.NewRow();
dr[0] = "One";
_dt.Rows.Add(dr);
dr = _dt.NewRow();
dr[0] = "Two";
_dt.Rows.Add(dr);
dr = _dt.NewRow();
dr[0] = "Three";
_dt.Rows.Add(dr);
dataGridView1.DataSource = _dt;
}
private void button1_Click(object sender, EventArgs e)
{
_dt.Rows[0][0] = "daddy";
}
您需要将数据网格添加到表单中,如下所示:
private void Form1_Load(object sender, EventArgs e)
{
DataGridView datagrid = new DataGridView();
DataTable dt = new DataTable();
//add this line
Controls.Add(datagrid);
dt.Columns.Add("No");
dt.Columns.Add("Name");
for (int i = 1; i <= 10; i++)
{
DataRow row = dt.NewRow();
row[0] = i;
row[1] = "ABC";
dt.Rows.Add(row);
}
datagrid.DataSource = dt;
dt.Rows[0][1] = "XYZ";
}
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.