C# Winforms图表为空

C# Winforms图表为空,c#,winforms,mschart,C#,Winforms,Mschart,我用默认的winforms图表创建了一个简单的项目,没有任何更改和按钮 public partial class Form1 : Form { public Dictionary<int, double> L { get; set; } public Form1() { InitializeComponent(); L = new Dictionary<int, double>(); chart1.

我用默认的winforms图表创建了一个简单的项目,没有任何更改和按钮

public partial class Form1 : Form
{
    public Dictionary<int, double> L { get; set; }
    public Form1()
    {
        InitializeComponent();

        L = new Dictionary<int, double>();
        chart1.DataSource = L;
        chart1.Series[0].XValueMember = "Key";
        chart1.Series[0].YValueMembers = "Value";

    }

    private void Generate(object sender, EventArgs e)
    {
        L.Clear();
        Random R = new Random();
        for (int i = 0; i < numberNUD.Value; i++)
        {
            L.Add(i, R.NextDouble() * 100);
        }
    }
}
公共部分类表单1:表单
{
公共字典L{get;set;}
公共表格1()
{
初始化组件();
L=新字典();
图表1.DataSource=L;
chart1.Series[0].XValueMember=“Key”;
图表1.系列[0].YValueMembers=“Value”;
}
私有void生成(对象发送方、事件参数)
{
L.清除();
随机R=新随机();
for(int i=0;i
但单击后,图表仍然为空。数据源有一些值,但
chart1.Series[0]。Points.Count==0

我遗漏了什么吗?

您是否在某处调用了Generate方法?您应该首先调用它,以便它可以用一些随机值填充字典。

仅仅因为您设置了一次数据源,并不意味着它将在您的模型更新时自动更新

更改模型后,需要再次设置数据

L.Clear();
Random R = new Random();
for (int i = 0; i < numberNUD.Value; i++)
{
    L.Add(i, R.NextDouble() * 100);
}
chart1.DataSource = L; //this!
chart1.DataBind(); //and this if it doesn't work
L.Clear();
随机R=新随机();
for(int i=0;i
Generate被调用的是什么?您是否将其设置为按钮的事件处理程序?什么是
numberNUD
?是的。而且处理得很好。numberNUD-是一个数字上下控制。我当然知道。它是一个按钮事件处理程序。毕竟L有一些值,chart1.DataSource也有相同的值,chart1.Series[0].Points.Count==0。我认为您还应该调用chart1.DataBind()方法,它将数据源中的数据绑定到控件谢谢,这是一个解决方案。@MateoVelenik我会编辑您的帖子以包含您的评论。否则,它看起来不太像一个答案,可能会被标记为删除。不,数据源会在L被更新后很好地更新。我只是在调试时看到它。