原創|其它|編輯:郝浩|2012-02-23 00:30:35.000|閱讀 1897 次
概述:visifire是一款基于WPF&silverlight的動畫圖表控件,支持數據綁定、數據鉆取以及實時更新等功能特點。上一篇文章《跟我一起學習做Visifire圖表實時更新示例》中實現了visifire圖表的實時更新功能,本文主要介紹visifire的數據綁定功能以及如何將圖表綁定到數據源。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
visifire是一款基于WPF&silverlight的動畫圖表控件,支持數據綁定、數據鉆取以及實時更新等功能特點。上一篇文章《跟我一起學習做Visifire圖表實時更新示例》中實現了visifire圖表的實時更新功能,本文主要介紹visifire的數據綁定功能以及如何將圖表綁定到數據源。
創建一個silverlight應用程序,并將visifire二進制引用添加到該silverlight程序中。關于在silverlight程序中創建報表,請參考。
下面是一個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>
在項目中創建一個新的Value類,根據如下所示實現INotifyPropertyChanged接口。在類里面添加一個PropertyChanged事件。創建Label和 YValue屬性,從而實現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命名空間已被添加到頁面內。
通過后臺代碼,創建ObservableCollection類,將其設置為圖表中DataSeries的數據源。
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屬性。當DataSeries的DataSource屬性被設置到"values",DataSeries從值集合中獲取數據來生成相應的數據點。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網