2011-12-06 16 views
1

この例では、カスタムビジネスオブジェクトのリストをRadチャートにバインドしています。この例では、1年間の月次収益の概要を示しています。私がX軸ラベルのために設定している日付は、私がそれらを設定したものとしてレンダリングされません。Telerik silverlight chart 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); 

はI 2011(Full_Date || Revenue_Amount)のためにリストに入ることになるデータである。

  • {2011年1月1日午前12:00:00} || 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の自動範囲によって発生します。チャートは1ヶ月の定時ステップを定義することができないため(月数は日数が異なります)、XAxisは30日が最も適切であると自動的に定義します。 手動レンジを設定すると、あなたは私はあなたの代わりにはxValueのXCategoryを使用することを示唆して助けにはなりません。

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 =を。これ以上必要ないので、 です。

乾杯、 Evgenia

+0

ありがとう!これはまさに私が必要としていたものです! – PercivalMcGullicuddy

関連する問題