2011-12-06 53 views
1

因此,我將自定義業務對象列表綁定到Rad圖表,對於此實例,爲每年的月收入概覽。我爲X軸標籤設置的日期不會按照我設置的日期顯示。Telerik silverlight圖表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); 

這裏是我會得到列表中的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

我在做什麼錯?

回答

2

正如我從您的圖像中可以看出,圖表繪製了30天的步驟欄。這是由XAxis的自動範圍引起的。由於Chart無法定義1個月的準時步驟(月份具有不同的天數),因此XAxis自動定義30天是最合適的。 設置手動範圍不會幫助你,所以我建議你使用XCategory代替x值:

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;因爲它不再需要。

乾杯, Evgenia

+0

謝謝!這正是我需要的! – PercivalMcGullicuddy