我对 MVC 框架和 Kendo 都是新手,所以你必须忍受我。这是我的图表基类(我使用的 DatedChart 类只是一个类型的图表<DateTime, double>
:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Project.Models.Charts
{
public class NewChart<XType, YType> : IMailListener
where XType:IComparable
where YType:IComparable
{
public Dictionary<string, DataSeries<XType, YType>> SeriesList { get; protected set; }
public string Title { get; set; }
public string XLabel { get; set; }
public string YLabel { get; set; }
public NewChart(string title, string xLabel, string yLabel)
{
this.SeriesList = new Dictionary<string, DataSeries<XType, YType>>();
this.Title = title;
this.XLabel = xLabel;
this.YLabel = yLabel;
}
public void AddSeries(DataSeries<XType, YType> series)
{
this.SeriesList.Add(series.Name, series);
}
public virtual void OnUpdate(IEnumerable<MailEntry> mail)
{
foreach (var ds in this.SeriesList.Values)
{
ds.OnUpdate(mail);
}
}
}
}
这是数据系列的类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Project.Models.Charts
{
public abstract class DataSeries<XType, YType> : IMailListener
where XType : IComparable
where YType : IComparable
{
public string Name;
public List<Pair<XType, YType>> values { get; private set; }
protected DataSeries(string name)
{
this.Name = name;
this.values = new List<Pair<XType, YType>>();
}
public abstract void OnUpdate(IEnumerable<MailEntry> mail);
}
}
我需要做的是创建一个显示这些图表之一的视图。我已经阅读了很多示例,但我很难看到它们如何应用于我正在尝试做的事情 - 其中很多都掩盖了如何围绕任意模型拟合您的视图。我不需要任何花哨的例子,只需要一些东西来告诉我如何从这些图表中获取数据到 Kendo 的 LineChart 类可以显示系列的格式。我的观点可能是这样的:
@using DatedChart = Project.Models.Charts.DatedChart
@using DatedSeries = Project.Models.Charts.DataSeries<System.DateTime, double>
@model DatedChart
<div class="nice-module nice-smallchart center">
// Magic here?
</div>
有什么提示吗?
编辑:
模型说明 我的模型由 Chart 对象组成,其中每个图表都有一个标题、x 轴、y 轴和一组一个或多个数据系列。每个系列是一组不同的点(即,它将有自己的颜色,如果是折线图,则只有这些点会相互连接)。我将基本 Chart 类参数化,以便 X 和 Y 轴可以具有任何类型,但现在我只是将 DateTime 对象用于 X 类型,将双精度对象用于 y 类型,因此 DatedChart 将具有其数据点的系列是成对的。此图表模型的一个示例是显示四个 Stack Overflow 用户在一个月内的声誉的图表。每个用户都有他或她自己的一系列点 (x, y),其中 x 是一天的 DateTime,y 是帖子的计数。