原創(chuàng)|其它|編輯:郝浩|2012-02-23 00:30:35.000|閱讀 1897 次
概述:visifire是一款基于WPF&silverlight的動畫圖表控件,支持?jǐn)?shù)據(jù)綁定、數(shù)據(jù)鉆取以及實(shí)時更新等功能特點(diǎn)。上一篇文章《跟我一起學(xué)習(xí)做Visifire圖表實(shí)時更新示例》中實(shí)現(xiàn)了visifire圖表的實(shí)時更新功能,本文主要介紹visifire的數(shù)據(jù)綁定功能以及如何將圖表綁定到數(shù)據(jù)源。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
visifire是一款基于WPF&silverlight的動畫圖表控件,支持?jǐn)?shù)據(jù)綁定、數(shù)據(jù)鉆取以及實(shí)時更新等功能特點(diǎn)。上一篇文章《跟我一起學(xué)習(xí)做Visifire圖表實(shí)時更新示例》中實(shí)現(xiàn)了visifire圖表的實(shí)時更新功能,本文主要介紹visifire的數(shù)據(jù)綁定功能以及如何將圖表綁定到數(shù)據(jù)源。
創(chuàng)建一個silverlight應(yīng)用程序,并將visifire二進(jìn)制引用添加到該silverlight程序中。關(guān)于在silverlight程序中創(chuàng)建報表,請參考。
下面是一個Chart XAML:
<StackPanel Orientation="Horizontal">
<vc:Chart Name="MyChart" Width="500" Height="300" Padding="10,10" Margin="10,0" AnimatedUpdate="True">
<vc:Chart.Titles>
<vc:Title Text="Visifire DataBinding"></vc:Title>
</vc:Chart.Titles>
<vc:Chart.Series>
<vc:DataSeries RenderAs="Column">
<vc:DataSeries.DataMappings>
<vc:DataMapping MemberName="AxisXLabel" Path="Label"></vc:DataMapping>
<vc:DataMapping MemberName="YValue" Path="YValue"></vc:DataMapping>
</vc:DataSeries.DataMappings>
</vc:DataSeries>
</vc:Chart.Series>
</vc:Chart>
</StackPanel>
在項(xiàng)目中創(chuàng)建一個新的Value類,根據(jù)如下所示實(shí)現(xiàn)INotifyPropertyChanged接口。在類里面添加一個PropertyChanged事件。創(chuàng)建Label和 YValue屬性,從而實(shí)現(xiàn)ProperyChanged事件。
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;
namespace VisifireDataBinding
{
public class Value : INotifyPropertyChanged
{
public String Label
{
get
{
return _label;
}
set
{
_label = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("Label"));
}
}
public Double YValue
{
get
{
return _yValue;
}
set
{
_yValue = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("YValue"));
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
Double _yValue;
String _label;
}
}
注:確保System.ComponentModel命名空間已被添加到頁面內(nèi)。
通過后臺代碼,創(chuàng)建ObservableCollection類,將其設(shè)置為圖表中DataSeries的數(shù)據(jù)源。
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
values.Add(new Value() { Label = "Sony", YValue = 50 });
values.Add(new Value() { Label = "Dell", YValue = 35 });
values.Add(new Value() { Label = "HP", YValue = 27 });
values.Add(new Value() { Label = "HCL", YValue = 17 });
values.Add(new Value() { Label = "Toshiba", YValue = 16 });
MyChart.Series[0].DataSource = values;
}
ObservableCollection<Value> values = new ObservableCollection<Value>();
}
在上面的例子,值是一個Value 類的集合。使用"Label" and "YValue"將"Label" and "YValue"映射到AxisXLabel和DataPoint 的YValue屬性。當(dāng)DataSeries的DataSource屬性被設(shè)置到"values",DataSeries從值集合中獲取數(shù)據(jù)來生成相應(yīng)的數(shù)據(jù)點(diǎn)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)