C# Winforms图表为空
我用默认的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.
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被更新后很好地更新。我只是在调试时看到它。