将对象列表绑定到图表

我有一个对象列表:

List MyList = new List(); 

MyClass包含实时更新的Properties Dtm和LastPrice

 public class MyClass { int dtm; double lastPrice = 0; public int Dtm { get { return dtm; } set { dtm = value; } } public double LastPrice { get { return lastPrice; } set { lastPrice = value; } } } 

我现在想要一个列在列表中的图表,每次属性更改时都会自动更新。 有什么想法怎么做?

谢谢

有关将数据绑定到系列(图表控件)的概述, 请参见此处!

List绑定到Chart的最简单方法是将List设置为DataSource并设置X和Y值成员:

 chart1.DataSource = MyList; S1.XValueMember = "Dtm"; S1.YValueMembers = "LastPrice"; 

至于更新图表,您使用DataBind方法:

 chart1.DataBind(); 

现在您有两种选择:

要么你知道价值何时改变; 那么您可以在更改后添加调用。

但也许你不知道这些变化何时发生,或者有许多演员都可能改变列表。

为此,您可以将DataBind调用权限添加到相关属性的setter中:

 public class MyClass { int dtm; double lastPrice = 0; public static Chart chart_ { get; set; } public int Dtm { get { return dtm; } set { dtm = value; } } public double LastPrice { get { return lastPrice; } set { lastPrice = value; chart_.DataBind(); } } // a constructor to make life a little easier: public MyClass(int dt, double lpr) { Dtm = dt; LastPrice = lpr; } } 

为此,列表必须了解要更新的图表。 我已经添加了对该类的引用。 所以在添加/绑定点之前我们设置一个图表参考:

 MyClass.chart_ = chart1; // set the static chart to update // a few test data using a Random object R: for (int i = 0; i < 15; i++) MyList.Add(new MyClass(R.Next(100) + 1 , R.Next(100) / 10f) ); 

引用可以是static ,因为所有List元素都将更新相同的图表。