一个datagridview绑定数据集合的问题 有一个自定义集合对象,继承自Collection<T>,把这个集合对象绑定到一个DatagridView后,可以显示,但如果对集合增删操作后,datagridview没有显示更新,这是为什么啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你调用datagridview.Update()方法看看呢? 还有一种可能,你改动的那个集合与你绑定的集合指向不一致了,比如你在什么地方又new了一个新的集合,对那个新的集合变量操作,不会影响到你的datagridview。所以你尝试下datagridview.DataSource的重新赋值看看,如果成功,说明就是那个原因了。 private ScheduleCollection<ScheduleConsumer> consumers; private void BindingModelSource() { for (int i = 1; i < 5; i++) { ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString()); sc.Level = i/3; sc.Sequence = 10 * i; consumers.Add(sc); } this.dataGridView1.AutoGenerateColumns = false; this.dataGridView1.DataSource = consumers ; } private void button1_Click(object sender, EventArgs e) { for (int i = 1; i < 4; i++) { ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString()); sc.Level = i; sc.Sequence = 10 * i; consumers.Add(sc); } // this.dataGridView1.Update(); //this.dataGridView1.DataSource = consumers; }没反应,是不是其他地方出问题了,贴出代码,帮忙看下,谢谢啊。 //先清空,再赋值就okthis.dataGridView.DataSource = null;this.dataGridView.DataSource = yourList; private void button1_Click(object sender, EventArgs e) { for (int i = 1; i < 4; i++) { ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString()); sc.Level = i; sc.Sequence = 10 * i; consumers.Add(sc); } // this.dataGridView1.Update(); //this.dataGridView1.DataSource = consumers; this.dataGridView1.DataSource = null; this.dataGridView1.DataSource = consumers; } 果然啊,终于更新了。但是有点想不明白,这个yourList引用始终没有变过的,为什么要清空,再赋值呢。 恩,谢谢了,估计是是我没把握好,consumers的new发生在一个函数里,但用了out关键字。错误可能就发生在这里,我换下。谢谢各位,散分了。 C#时间段查询方法 WebBrowser的URL listview中显示其它控件 关于程序员写程序有什么用? 高分寻求高手出现(100) (新手)计时器等于每天的10:00触发事件,怎么写? 關於批量插入數據到數據庫的問題,求大神幫助 C#中private属性有什么用? 帅哥们进吧!小问题。 PHP帮忙转成C#代码,实在是看不太懂,求帮忙,可有偿 自动搭建项目环境 求教几个正则
private ScheduleCollection<ScheduleConsumer> consumers; private void BindingModelSource()
{
for (int i = 1; i < 5; i++)
{
ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString());
sc.Level = i/3;
sc.Sequence = 10 * i;
consumers.Add(sc);
}
this.dataGridView1.AutoGenerateColumns = false;
this.dataGridView1.DataSource = consumers ;
} private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i < 4; i++)
{
ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString());
sc.Level = i;
sc.Sequence = 10 * i;
consumers.Add(sc);
}
// this.dataGridView1.Update();
//this.dataGridView1.DataSource = consumers;
}没反应,是不是其他地方出问题了,贴出代码,帮忙看下,谢谢啊。
//先清空,再赋值就ok
this.dataGridView.DataSource = null;
this.dataGridView.DataSource = yourList;
private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i < 4; i++)
{
ScheduleConsumer sc = new ScheduleConsumer(i, "cousmer" + i.ToString());
sc.Level = i;
sc.Sequence = 10 * i;
consumers.Add(sc);
}
// this.dataGridView1.Update();
//this.dataGridView1.DataSource = consumers;
this.dataGridView1.DataSource = null;
this.dataGridView1.DataSource = consumers; }
果然啊,终于更新了。但是有点想不明白,这个yourList引用始终没有变过的,为什么要清空,再赋值呢。
错误可能就发生在这里,我换下。谢谢各位,散分了。