使用devexpress的饼图,从变量传递值

时间:2011-11-30 14:23:33

标签: c# winforms charts devexpress

我正在使用DevExpress for WinForms(免费版),而我正在使用3D饼图。 我已经有了一个使用Windows版本的图表,我所做的只是传递四个变量作为图表中系列所需的值。 这是我目前使用的代码。

double[] yValues = { bottom, bmid, tmid, top};
string[] xNames = { "Greater than 200", "Between 200-100", "Between 100-50",                "Below 50" };

chart1.Series[0].Points.DataBindXY(xNames, yValues);

现在,我制作了一张DevExpress图表并尝试使用:

   Devchart1.series[0].points   

points.databind不存在。 有谁知道我如何使用WinForms绑定数据?

更新 这是我尝试过的更多内容(已注释掉)。

        double[] yValues = { bottom, bmid, tmid, top};
        string[] xNames = { "Greater than 200", "Between 200-100", "Between 100-50", "Below 50" };

        chart1.Series[0].Points.DataBindXY(xNames, yValues);

        DataTable chartTable = new DataTable("Table1");

        // Add two columns to the table.
        chartTable.Columns.Add("Names", typeof(string));
        chartTable.Columns.Add("Value", typeof(Int32));
        chartTable.Rows.Add("Below 50", top);
        chartTable.Rows.Add("Between 50-100", tmid);
        chartTable.Rows.Add("Between 100-200", bmid);
        chartTable.Rows.Add("Greater than 200", top);

        Series series1 = new Series("Series1", ViewType.Pie3D);

        chartControl2.Series.Add(series1);

        series1.DataSource = chartTable;
        series1.ArgumentScaleType = ScaleType.Qualitative;
        series1.ArgumentDataMember = "names";
        series1.ValueScaleType = ScaleType.Numerical;
        series1.ValueDataMembers.AddRange(new string[] { "Value" });
        //((Pie3DSeriesView)series1.View). = true;
        //((pie)chartControl2.Diagram).AxisY.Visible = false;
        chartControl2.Legend.Visible = false;

        // Dock the chart into its parent and add it to the current form.
        chart1.Dock = DockStyle.Fill;

:: UPDATE2 :: 下面是使用值101,22,20和15的代码所发生的事情。 enter image description here

1 个答案:

答案 0 :(得分:3)

DevExpress Series具有DataSource绑定属性。

检查article。希望它有所帮助

<强>更新  我使用你的代码,似乎工作正常

        DataTable chartTable = new DataTable("Table1");

        // Add two columns to the table.
        chartTable.Columns.Add("Names", typeof(string));
        chartTable.Columns.Add("Value", typeof(Int32));
        chartTable.Rows.Add("Below 50", 10);
        chartTable.Rows.Add("Between 50-100", 10);
        chartTable.Rows.Add("Between 100-200", 10);
        chartTable.Rows.Add("Greater than 200", 10);

        Series series1 = new Series("Series1", ViewType.Pie3D);

        //chartControl1.Series.Clear();
        chartControl2.Series.Add(series1);

        series1.DataSource = chartTable;
        series1.ArgumentScaleType = ScaleType.Qualitative;
        series1.ArgumentDataMember = "names";
        series1.ValueScaleType = ScaleType.Numerical;
        series1.ValueDataMembers.AddRange(new string[] { "Value" });
        //((Pie3DSeriesView)series1.View). = true;
        //((pie)chartControl2.Diagram).AxisY.Visible = false;
        chartControl2.Legend.Visible = false;

enter image description here