图表数据绑定到DataTable – 图表未更新

我正在尝试将Chart数据绑定到DataTable 。 我希望图表在添加时显示新行,但是当向表中添加新行时,图表不会更新。 我已经validationtabletableDataSource都包含新行,但是chart.Series["TestTable"].Points.Count永远不会从5更改。

基于问题的示例代码无法将数据表绑定到Chart Control ,如下所示。 我想知道下面的代码是否存在错误或遗漏,或者是一种实现相同目标的不同的更好的方法。 我知道如何手动添加点到Series ,但我想看看如何使用数据绑定。

 Random r = new Random(); Timer timer = new Timer(); DataTable table = new DataTable("TestTable"); DateTime date = new DateTime(2013, 1, 1); IList tableDataSource = null; void timer_Tick(object sender, EventArgs e) { table.Rows.Add(date, r.NextDouble()); date = date.AddDays(1); chart.Update(); } void MainForm_Load(object sender, EventArgs e) { table.Columns.Add("Date", typeof(DateTime)); table.Columns.Add("Percent", typeof(double)); for (int i = 0; i < 5; i++) { table.Rows.Add(date, r.NextDouble()); date = date.AddDays(1); } tableDataSource = (table as IListSource).GetList(); chart.DataBindTable(tableDataSource, "Date"); timer.Interval = 500; timer.Tick += new EventHandler(timer_Tick); timer.Start(); } 

尝试将该表用作DataSource:

 // tableDataSource = (table as IListSource).GetList(); // chart.DataBindTable(tableDataSource, "Date"); chart.Series.Add("test"); chart.Series["test"].XValueMember = "Date"; chart.Series["test"].YValueMembers = "Percent"; chart.DataSource = table; chart.DataBind(); 

然后在tick事件中,再次调用DataBind而不是Update:

 void timer_Tick(object sender, EventArgs e) { table.Rows.Add(date, r.NextDouble()); date = date.AddDays(1); //chart.Update(); chart.DataBind(); }