无法将数据表绑定到Chart Control

我想在我的测试应用程序中使用极坐标图表。 我有一个包含几列的数据表,其中名称为“X”的列应提供x值成员,其他列应为y值成员。 我在MSDN上找到了一个教程,但它并没有真正起作用,因为该行

chart1.DataBindTable(dt, "X"); 

不会编译。 欢迎任何提示,谢谢。

这是代码:

 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; namespace PolarChartTest_01 { public partial class Form1 : Form { public DataTable dt; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { dt.Rows.Clear(); dt.Columns.Clear(); chart1.Series.Clear(); dt.Columns.Add("X", typeof(int)); dt.Columns.Add("Y", typeof(int)); for (int j = 0; j < 7; j++) { DataRow dr = dt.NewRow(); dr["X"] = j * 45; dr["Y"] = j; dt.Rows.Add(dr); } chart1.DataBindTable(dt, "X"); } } 

}

它不会编译,因为DataTable没有实现IEnumerable接口。 尝试:

 var enumerableTable = (dt as System.ComponentModel.IListSource).GetList(); chart1.DataBindTable(enumerableTable , "X"); 

这可以帮助您在页面加载时写这个

 chart.DataSource = dataqtableName; chart.Series["seriesName"].XValueMember = "columNameUwantToBind"; chart.Series["seriesName"].YValueMembers = "columNameUwantToBind"; chart.DataBind(); 

另一个解决方案可能是

 chart1.DataBindTable(dt.DefaultView, "X"); 

作为奖励,除了“databindable”之外,返回的DataView可用于排序和过滤。

    Interesting Posts