轉(zhuǎn)帖|使用教程|編輯:龔雪|2016-03-01 09:33:30.000|閱讀 1294 次
概述:在上文中,我們?yōu)榇蠹医榻B了C1Chart的類型。C1Chart圖表是如何展示數(shù)據(jù)的呢?下面就和小編一起來(lái)了解圖表的核心:數(shù)據(jù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
<ComponentOne Studio for WPF下載>
在上文中,我們?yōu)榇蠹医榻B了C1Chart的類型。C1Chart圖表是如何展示數(shù)據(jù)的呢?下面就和小編一起來(lái)了解圖表的核心:數(shù)據(jù)。
C1Chart可以綁定到任何一個(gè)繼承了System.Collections.IEnumerable接口的對(duì)象(比如XmlDataProvider, DataSet, DataView等)。通過(guò)設(shè)置ItemsSource屬性,就可以將C1Chart控件綁定到datatable。下面介紹將數(shù)據(jù)傳遞到C1Chart控件的不同的數(shù)據(jù)綁定方法。
其中一種傳遞數(shù)據(jù)到圖表的方法,就是使用ValueSource屬性綁定到值集合。任何支持IEnumerable接口的數(shù)字集合都可以設(shè)置為data series的數(shù)據(jù)源。在上一節(jié)我們提到了data series類型,不同的data series類都有數(shù)據(jù)綁定的相應(yīng)屬性。比如,DataSeries類使用ValuesSource屬性做數(shù)據(jù)綁定。如下面例子所示,綁定的數(shù)據(jù)源為double類型的數(shù)據(jù)集合,首先我們需要定義數(shù)據(jù)源,然后將數(shù)據(jù)源綁定到C1Chart的DataSeries。分別用C#代碼和XAML代碼演示。
XAML代碼:
<!--Binding Source--> <x:Array x:Key="array" Type="System:Double"> <System:Double>1</System:Double> <System:Double>4</System:Double> <System:Double>9</System:Double> <System:Double>16</System:Double> </x:Array> <!--Binding Target --> <c1:C1Chart Name="chart" ChartType="Column" > <c1:C1Chart.Data> <c1:ChartData> <c1:DataSeries Label="s1" ValuesSource="{Binding Source={StaticResource array}}"/> </c1:ChartData> </c1:C1Chart.Data> <c1:Legend></c1:Legend> </c1:C1Chart>
如果不使用數(shù)據(jù)綁定,也可以用Values屬性很容易的實(shí)現(xiàn),只要將值之間用空格分開(kāi),具體的代碼如下:
<c1:DataSeries Values="1 2 9 16"/>
這樣的一句代碼就可以替換之前的設(shè)置數(shù)據(jù)源以及數(shù)據(jù)綁定的操作。另外在cs文件里也可以很容易的實(shí)現(xiàn)綁定。
C#代碼:
// Clear previous data chart.Data.Children.Clear(); double[] values = { 1, 4, 9, 16 }; // Create column series chart.Data.Children.Add(new DataSeries() { ValuesSource = values });
以上代碼的具體示例可以參考如下Demo:
如果您有一個(gè)對(duì)象集合包含數(shù)字屬性,就可以使用數(shù)據(jù)綁定。這時(shí)涉及到至少兩個(gè)屬性:
我們假定有一個(gè)序列點(diǎn)集,然后圖表展示它的數(shù)據(jù)。那么XAML代碼和C#代碼分別如下所示:
XAML代碼:
<x:Array x:Key="points" Type="Point"> <Point>0,0</Point> <Point>10,0</Point> <Point>10,10</Point> <Point>0,10</Point> <Point>5,5</Point> </x:Array> </Window.Resources> <!--Binding Target --> <c1:C1Chart Name="chart" ChartType="Column" > <c1:C1Chart.Data> <c1:ChartData ItemsSource="{Binding Source={StaticResource points}}"> <c1:DataSeries Label="s1" ValueBinding="{Binding Path=X}"/> <c1:DataSeries Label="s2" ValueBinding="{Binding Path=Y}"/> </c1:ChartData> </c1:C1Chart.Data> </c1:C1Chart>
如果使用將上述代碼在cs文件里描述,可以使用下面代碼來(lái)替換:
C#代碼:
//Clear chart data chart.Data.Children.Clear(); //Create dummy data points.Add(new Point(0, 20)); points.Add(new Point(1, 22)); points.Add(new Point(2, 19)); points.Add(new Point(3, 24)); points.Add(new Point(4, 29)); points.Add(new Point(5, 7)); points.Add(new Point(6, 12)); points.Add(new Point(7, 15)); //Setup C1Chart data series XYDataSeries ds = new XYDataSeries(); ds.Label = "Series 1"; //Bind data series to collection ds.ItemsSource = points; //Important to set binding when using ItemsSource ds.ValueBinding = new Binding("Y"); ds.XValueBinding = new Binding("X"); //Add data series to chart chart.Data.Children.Add(ds);
上述代碼的示例如下所示:
在這個(gè)示例中,我們創(chuàng)建了2個(gè)data series,并且一個(gè)綁定到鼠標(biāo)的X,另一個(gè)綁定到鼠標(biāo)的Y。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)