2014-02-11 27 views
0

我以類似於DevExpress網站上this example的方式編程創建圖表。我發現您可以將系列數據識別爲貨幣格式,但報告工具是全球性的,需要能夠使用傳入貨幣格式化各種圖表標籤。如何在DevExpress XtraCharts中通過CultureInfo格式化貨幣?

這裏是用來生成一個典型的SeriesView代碼的示例:

private void FormatBarSeries (SideBySideBarSeriesView bar) 
{ 
    bar.AxisY.NumericOptions.Format = NumericFormat.Currency; 
    bar.AxisY.NumericOptions.Precision = 0; 
    bar.AxisY.Title.Text = "Sample Bar"; 
    bar.AxisY.Title.Font = new Font(GetChartFontFamily(), 10.0f, FontStyle.Regular); 
    bar.AxisY.Title.Visible = true; 
    bar.AxisY.Tickmarks.Visible = false; 
    bar.AxisY.Tickmarks.MinorVisible = false; 
    bar.AxisX.Tickmarks.MinorVisible = false; 
} 

我似乎無法找到限定用於特定圖表的培養物的任何方式。每個報表可能包含多個圖表,但報表中的所有圖表都是相同的貨幣格式。

這可能是設置在報告級別並讓所有圖表繼承它嗎?或者我怎樣才能以圖表的形式在圖表上設置?

回答

0

找到了答案,這表現here

你必須掛鉤到一個CustomDrawAxisLabel事件:

Chart.CustomDrawAxisLabel += Chart_CustomDrawAxisLabel; 

在那裏你可以用這樣的功能覆蓋代碼:

void Chart_CustomDrawAxisLabel (object sender, CustomDrawAxisLabelEventArgs e) 
    { 
    AxisBase axis = e.Item.Axis; 
    if(axis.NumericOptions.Format == NumericFormat.Currency) 
     { 
     decimal value = 0.00M; 
     e.Item.Text = decimal.TryParse(e.Item.AxisValue.ToString(), 
             out value) 
         ? value.ToString("C0", _culture) 
         : e.Item.AxisValue.ToString(); 
     } 
    } 

使用在課程中其他地方定義的文化變量。