如何从字典中设置图表XValue和YValue成员?

时间:2016-02-24 16:39:16

标签: c# .net

我尝试从字典集合中设置图表XValueMember和YValueMember:

public partial class GraphWindow : Window
{
   Dictionary<int, double> value;
    public GraphWindow(Dictionary<int, double> values)
    {
        InitializeComponent();
        value = new Dictionary<int, double>(values);
        Plot();
    }

    public void Plot()
    {
        Chart chart = this.FindName("Chart") as Chart;
        if (chart != null)
        {
            chart.DataSource = value;
            chart.Series["series"].XValueMember = "Key";
            chart.Series["series"].YValueMembers = "Value";
        }
    }
}

轴已构建,但为空(screenshot)。以前,我尝试使用KeyValuePair,但图表不支持它。如何以图表格式从字典中获取值和键?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

你只缺少一个小piece的谜题:

chart.DataSource = value;
chart.Series[0].XValueMember = "Key";
chart.Series[0].YValueMembers = "Value";
chart.DataBind();  

最后一行将在其他人设置之后建立DataBinding

只要数据发生变化,您就需要再次调用它。

注意:根据上面的MSDN链接..:

  

如果数据源设置为图表而没有其他数据   操作是必需的,DataBind方法不一定是   明确地叫。在这些情况下,Chart本身将数据绑定到   在呈现之前的数据源。

..实际上你可以通过调用

强制执行渲染
chart.Refresh();

但是由于字典需要设置值某些东西似乎是必要的才能使其有效..

使用这些数据

value.Clear();
value.Add(1,12);
value.Add(2,32);
value.Add(3,52);
value.Add(6,42);

此图表结果:

enter image description here