我使用我自己的类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; }
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试DataBind IEnumerable <ChartPoint>:
serie.Points.DataBind(points, "Xvalue", "Yvalue", "Tooltip=Tooltip,Url=Url");
Run Code Online (Sandbox Code Playgroud)
但我然后在该行上遇到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
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Jar*_*Par 13
你在使用C#迭代器吗?
C#迭代器不会在生成的IEnumerator上实现Reset函数,并且如果调用它将抛出NotImplementedException.看起来特定控件需要该方法存在.
您可能必须使用支持其迭代器上的Reset的集合.实现这一目标的最简单方法是使用a List<T>来包装现有的IEnumerable<T>
例如
List<ChartPoint> list = new List<ChartPoint>(points);
serie.Points.DataBind(list, "Xvalue", "Yvalue", "Tooltip=Tooltip,Url=Url");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2495 次 |
| 最近记录: |