Telerik silverlight chart X轴标签的意外日期输出

时间:2011-12-06 13:45:34

标签: silverlight telerik radchart

因此,我将自定义业务对象列表绑定到Rad图表,对于此实例,概述了一年的月收入。我为X轴标签设置的日期没有呈现为我设置的日期。

这是我的基本代码,您可以看到获取给定年份的 monthLedger 对象列表。 monthLedger 对象具有不同的属性,但此方案的主要属性为 monthLedger.Full_date monthLedger.Revenue_Amount

List<monthLedger> year = getYearRevenueByMonth(2011);

DataSeries ser = new DataSeries();

foreach(monthLedger month in year)
{
    ser.Add(new DataPoint 
            { 
                YValue = Convert.ToDouble(month.Revenue_Amount), 
                Label = month.Revenue_Amount.ToString("0.00###"), 
                XValue = month.Full_Date.ToOADate()
            });
}


radChart1.DefaultView.ChartArea.AxisX.IsDateTime = true;
radChart1.DefaultView.ChartArea.AxisX.AutoRange = true;
radChart1.DefaultView.ChartArea.AxisX.DefaultLabelFormat = "dd-MMM";
radChart1.DefaultView.ChartArea.DataSeries.Add(ser);

以下是我将在2011年的列表中获得的数据(Full_Date || Revenue_Amount):

  • {01/01/2011 12:00:00 AM} || 0.00
  • {01/02/2011 12:00:00 AM} || 0.00
  • {01/03/2011 12:00:00 AM} || 0.00
  • {01/04/2011 12:00:00 AM} || 0.00
  • {01/05/2011 12:00:00 AM} || 0.00
  • {01/06/2011 12:00:00 AM} || 0.00
  • {01/07/2011 12:00:00 AM} || 0.00
  • {01/08/2011 12:00:00 AM} || 0.00
  • {01/09/2011 12:00:00 AM} || 0.00
  • {01/10/2011 12:00:00 AM} || 0.00
  • {01/11/2011 12:00:00 AM} || 246.50
  • {01/12/2011 12:00:00 AM} || 311.60

我期望获得的是一个包含12个月的漂亮图表,但是13列最终被绘制成图并且标记的日期与我转换为OLE自动化日期的日期完全不同。

我附上了图形结果的截图: enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:2)

正如我从你的图片中看到的那样,图表绘制了30天步长的条形图。这是由XAxis的自动范围引起的。由于图表无法定义1个月的准时步骤(月份具有不同的天数),因此XAxis自动定义30天是最合适的。 设置手动范围对您没有帮助,因此我建议您使用XCategory而不是XValue:

foreach(monthLedger month in year) 
   { 
    ser.Add(new DataPoint  
            {  
                YValue = Convert.ToDouble(month.Revenue_Amount),  
                Label = month.Revenue_Amount.ToString("0.00###"),  
                XCategory = month.Full_Date
            }); 
   } 

你可以删除它 - radChart1.DefaultView.ChartArea.AxisX.IsDateTime = true;   因为它不再需要了。

干杯, 伊芙吉尼娅