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

Telerik silverlight图表X轴标签的意外日期输出,silverlight,telerik,radchart,Silverlight,Telerik,Radchart,因此,我将自定义业务对象列表绑定到Rad图表,例如,一年的月度收入概览。我正在为X轴标签设置的日期根本没有呈现为我所设置的日期 这是我的基本代码,您可以看到它可以获取给定年份的monthLedger对象列表。monthLedger对象具有不同的属性,但此场景的主要属性是monthLedger.Full_date和monthLedger.Revenue_Amount List<monthLedger> year = getYearRevenueByMonth(2011); DataS

因此,我将自定义业务对象列表绑定到Rad图表,例如,一年的月度收入概览。我正在为X轴标签设置的日期根本没有呈现为我所设置的日期

这是我的基本代码,您可以看到它可以获取给定年份的monthLedger对象列表。monthLedger对象具有不同的属性,但此场景的主要属性是monthLedger.Full_datemonthLedger.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);
List year=getYearRevenueByMonth(2011年);
DataSeries ser=newdataseries();
foreach(一年中的monthLedger月)
{
服务添加(新数据点)
{ 
Y值=换算成双倍(月收入\金额),
Label=月收入金额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年列表中获得的数据(完整日期|收入|金额):

  • {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 Automation Date的日期完全不同

我附上了图形结果的屏幕截图:


我做错了什么?

从您的图像中可以看出,图表以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.axix.IsDateTime=true; 因为它不再需要了

干杯,
叶甫盖尼亚

谢谢!这正是我需要的!