用于向List添加或删除对象的事件

时间:2012-07-14 22:50:58

标签: c# list events generics

我正在制作控件来绘制一些图表。为此,我想从PictureBox派生一个控件并为其添加一个字段,它基本上是一个简单类的List:

public class Curve
{
     public List<PointF> DataPoints;
     public Color CurveColor;
     //and constructor and stuff
}

PictureBox类:

public class Graph : PictureBox
{
    List<Curve> Curves;
    //And some code to take care of drawing the curves
}

所以我真的在这里提供了一些提示,有没有办法连接一个事件,所以无论何时在Curve类中添加或删除Graph对象,它都会用剩余的曲线对象重绘自己?

我在here找到了一些详细信息,但这是ArrayList

1 个答案:

答案 0 :(得分:5)

一种方法是在您的Graph类中使用ObservableCollection,然后监听其CollectionChanged事件以重绘您的图形。

public class Graph : PictureBox {
    ObservableCollection<Point> Curves;
    //And some code to take care of drawing the curves

    public Graph() {
      Curves.CollectionChanged += Curves_CollectionChanged;
    }

    void Curves_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) {
      Redraw();
    }
}