C# 带有图表控件的数据绑定提供NotImplementedException

C# 带有图表控件的数据绑定提供NotImplementedException,c#,charts,C#,Charts,我用自己类ChartPoint的IEnumerable为Microsoft图表控件提供数据 public class ChartPoint { public double Xvalue { get; set; } public double Yvalue { get; set; } public string Url { get; set; } public string Tooltip { get; set; }

我用自己类ChartPoint的IEnumerable为Microsoft图表控件提供数据

    public class ChartPoint
    {
        public double Xvalue { get; set; }
        public double Yvalue { get; set; }
        public string Url { get; set; }
        public string Tooltip { get; set; }
    }
然后我尝试对IEnumerable进行数据绑定:

serie.Points.DataBind(points, "Xvalue", "Yvalue", "Tooltip=Tooltip,Url=Url");
但是我在那一行点击了一个NotImplementedException:

 System.Linq.Iterator`1.System.Collections.IEnumerator.Reset() +29
   System.Web.UI.DataVisualization.Charting.DataPointCollection.DataBind(IEnumerable dataSource, String xField, String yFields, String otherFields) +313

我做错了什么

您是否使用迭代器块(即,
产生返回
)?如果生成
Reset
方法,编译器将不会生成
Reset
方法,但该方法会抛出
NotImplementedException

您是否使用C迭代器

C#迭代器不会在生成的IEnumerator上实现Reset函数,如果调用它,将抛出NotImplementedException。看起来特定控件需要该方法存在

您可能必须使用一个支持在迭代器上重置的集合。实现这一点的最简单方法是使用
列表
包装现有的
IEnumerable

比如说

List<ChartPoint> list = new List<ChartPoint>(points);
serie.Points.DataBind(list, "Xvalue", "Yvalue", "Tooltip=Tooltip,Url=Url");
List List=新列表(点);
serie.Points.DataBind(列表,“Xvalue”、“Yvalue”、“Tooltip=Tooltip、Url=Url”);

查看我的连接错误报告。请对此投赞成票,也许微软会在下一个图表版本中对其进行修正。

轻微修正。它确实会生成一个重置(IEnumerator需要它),它只是抛出一个NotImplementedException