Chinaunix首页 | 论坛 | 博客
  • 博客访问: 398257
  • 博文数量: 159
  • 博客积分: 372
  • 博客等级: 一等列兵
  • 技术积分: 1693
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-13 17:05
个人简介

致力于图形处理和移动开发。

文章分类

全部博文(159)

文章存档

2014年(77)

2013年(67)

2012年(15)

我的朋友

分类: 系统运维

2012-03-06 10:40:11

  visifire是一款基于WPF&silverlight的动画图表控件,支持数据绑定、数据钻取以及实时更新等功能特点。上一篇文章《跟我一起学习做Visifire图表实时更新示例》中实现了visifire图表的实时更新功能,本文主要介绍visifire的数据绑定功能以及如何将图表绑定到数据源。

  创建一个silverlight应用程序,并将visifire二进制引用添加到该silverlight程序中。关于在silverlight程序中创建报表,请参考Managed Code Silverlight Sample

下面是一个Chart XAML:



















在项目中创建一个新的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 values = new ObservableCollection();

}

  在上面的例子,值是一个Value 类的集合。使用"Label" and "YValue"将"Label" and "YValue"映射到AxisXLabel和DataPoint 的YValue属性。当DataSeries的DataSource属性被设置到"values",DataSeries从值集合中获取数据来生成相应的 数据点。

visifire,visifire控件,visifire图表,数据绑定,实时更新

 


下载visifire:


阅读(1212) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~