C# 无法用Dundas图表绑定日期时间序列

C# 无法用Dundas图表绑定日期时间序列,c#,charts,dundas,C#,Charts,Dundas,我很难在Dundas图表上绘制系列数据。它似乎无法正确绑定DateTime值 以下是最小图表生成代码: public static void GenerateMultiSeriesChartImage<T,U>(List<ChartData<T,U>> chartData, string chartTitle, string xAxisTitle, string yAxisTitle, string xAxisValue, string yAxisVa

我很难在Dundas图表上绘制系列数据。它似乎无法正确绑定
DateTime

以下是最小图表生成代码:

public static void GenerateMultiSeriesChartImage<T,U>(List<ChartData<T,U>> chartData, string chartTitle,
    string xAxisTitle, string yAxisTitle, string xAxisValue, string yAxisValue, string chartFileName)
{
    Dundas.Charting.WebControl.Chart chart = new Dundas.Charting.WebControl.Chart();
    // Setting some chart properties

    Dundas.Charting.WebControl.Legend legend = new Dundas.Charting.WebControl.Legend();

    // I'm setting the legend properties            
    chart.Legends.Add(legend);

    // Setting the border skin
    Dundas.Charting.WebControl.Title title = new Dundas.Charting.WebControl.Title();
    title.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold);

    // Set custom chart title
    title.Text = chartTitle;
    chart.Titles.Add(title);

    int cnt = 1;
    foreach (ChartData<T,U> dataRecord in chartData)
    {
        Dundas.Charting.WebControl.Series series = new Dundas.Charting.WebControl.Series();

        series.Name = dataRecord.SeriesName;
        series.BorderColor = System.Drawing.ColorTranslator.FromHtml("#646464");
        series.BorderWidth = 2;
        series.Type = Dundas.Charting.WebControl.SeriesChartType.Line;
        series.MarkerBorderColor = System.Drawing.ColorTranslator.FromHtml("#646464");
        series.ShadowOffset = 1;

        // Set X & Y axis ValueMembers
        series.ValueMembersY = yAxisValue;
        series.ValueMemberX = xAxisValue;

        series.XValueType = dataRecord.XValueType;
        series.YValueType = dataRecord.YValueType;

        series.Points.DataBindXY(dataRecord.XAxisValues, xAxisTitle, dataRecord.YAxisValues, yAxisTitle);
        chart.Series.Add(series);
        cnt++;
    }

    Dundas.Charting.WebControl.ChartArea chartArea = new Dundas.Charting.WebControl.ChartArea();
    chartArea.BackColor = System.Drawing.Color.Lavender;
    chartArea.Name = "Default";
    chartArea.ShadowOffset = 2;
    chartArea.AxisY.Title = yAxisTitle;
    chartArea.AxisY.MajorGrid.LineColor = System.Drawing.Color.LightSteelBlue;
    chartArea.AxisY.MajorGrid.LineStyle = Dundas.Charting.WebControl.ChartDashStyle.Dash;
    chartArea.AxisX.Title = xAxisTitle;
    chartArea.AxisX.MajorGrid.LineColor = System.Drawing.Color.LightSteelBlue;
    chartArea.AxisX.MajorGrid.LineStyle = Dundas.Charting.WebControl.ChartDashStyle.Dash;
    chartArea.Area3DStyle.WallWidth = 0;
    chart.ChartAreas.Add(chartArea);

    chart.Save("C:/charts/" + chartFileName, Dundas.Charting.WebControl.ChartImageFormat.Png);
}
当我尝试绘制60个值时,情况变得更糟:


刚刚发现问题所在:
xAxisValue
应该是“Date”,而我把它作为“Day”

public class ChartData<X,Y>
{
    public List<X> XAxisValues { get; private set; }
    public List<Y> YAxisValues { get; private set; }
    public ChartValueTypes XValueType { get; private set; }
    public ChartValueTypes YValueType { get; private set; }
    public string SeriesName { get; private set; }

    public ChartData(string seriesName, ChartValueTypes xValueType, ChartValueTypes yValueType)
    {
        XAxisValues = new List<X>();
        YAxisValues = new List<Y>();
        SeriesName = seriesName;
        XValueType = xValueType;
        YValueType = yValueType;
    }

    public ChartData(string seriesName, X[] xAxisValues, Y[] yAxisValues, ChartValueTypes xValueType, ChartValueTypes yValueType)
    {
        XAxisValues = new List<X>(xAxisValues);
        YAxisValues = new List<Y>(yAxisValues);
        SeriesName = seriesName;

        XValueType = xValueType;
        YValueType = yValueType;
    }
}
series.XValueType = dataRecord.XValueType; // DateTime
series.YValueType = dataRecord.YValueType; // Int