NotImplementedException

NotImplementedException

我使用我自己的 ChartPoint 类的 IEnumerable 提供 Microsoft Chart 控件

    public class ChartPoint
    {
        public double Xvalue { get; set; }
        public double Yvalue { get; set; }
        public string Url { get; set; }
        public string Tooltip { get; set; }
    }

然后我尝试对 IEnumerable 进行数据绑定(bind):
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

我究竟做错了什么?

最佳答案

你在使用 C# 迭代器吗?

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

您可能必须使用一个在其迭代器上支持 Reset 的集合。实现这一点的最简单方法是使用 List<T> 来包装现有的 IEnumerable<T>
例如

List<ChartPoint> list = new List<ChartPoint>(points);
serie.Points.DataBind(list, "Xvalue", "Yvalue", "Tooltip=Tooltip,Url=Url");

关于c# - 带有 Chart 控件的数据绑定(bind)给出了 NotImplementedException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1098147/

10-10 16:37