如下,有这段程序在 button被点击的时候我会给List<mm> 增加一条记录,可是List<mm>是被邦定到dataGridView上的,按理说dataGridView应该实时更新增加的内容,可是dataGridView还是保持以前的老样子,什么都不更新,除非我先把它 = null,然后再assign value,可是这样做我觉得是非常愚蠢的办法,有没有什么方法能让dataGridView自动更新内容呢?另外,dataGridView的Update(), Refersh()我都试过,没有用的,请高手指教 public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ml.Add(new mm("opp", "mmn"));
ml.Add(new mm("opp1", "mmn1")); dataGridView1.DataSource = ml;
} private void button1_Click(object sender, EventArgs e)
{
ml.Add(new mm("sdfdsf", "qwwqe"));
//dataGridView1.DataSource = null; 除非先把它 = null,否则dataGridView不更新内容
dataGridView1.DataSource = ml;
} List<mm> ml = new List<mm>();
} public class mm
{
public string Name { get; set; }
public string Age { get; set; } public mm(string n, string a)
{
Name = n;
Age = a;
}
}
{
public Form1()
{
InitializeComponent();
ml.Add(new mm("opp", "mmn"));
ml.Add(new mm("opp1", "mmn1")); dataGridView1.DataSource = ml;
} private void button1_Click(object sender, EventArgs e)
{
ml.Add(new mm("sdfdsf", "qwwqe"));
//dataGridView1.DataSource = null; 除非先把它 = null,否则dataGridView不更新内容
dataGridView1.DataSource = ml;
} List<mm> ml = new List<mm>();
} public class mm
{
public string Name { get; set; }
public string Age { get; set; } public mm(string n, string a)
{
Name = n;
Age = a;
}
}
BindingSource bindingSource1 = new BindingSource();将dataGridView1的数据源关联到bindingSource1
dataGridView1.DataSource = bindingSource1;然后再将bindingSource1的数据源关联到 List
bindingSource1.DataSource = ml;操作时 直接使用 bindingSource1
如添加时 bindingSource1.Add(new mm("a2", "a2"));这样dataGridView1和ml 都会被更新的
public Form1()
{
InitializeComponent();
ml.Add(new mm("opp", "mmn"));
ml.Add(new mm("opp1", "mmn1"));
dataGridView1.DataSource = ml;
} private void button1_Click(object sender, EventArgs e)
{
ml.Add(new mm("sdfdsf", "qwwqe"));
dataGridView1.DataSource = ml;
}
还不行就用用BindingList<T>对象代替Ilist<T>
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = ml ;
dataGridView1.DataSource = bindingSource;