彩票走势图

C1Chart for WPF初级教程:数据(二)

转帖|使用教程|编辑:龚雪|2016-03-02 09:11:23.000|阅读 352 次

概述:在上文中,我们讨论了数据源是值集合和对象集合的时候,如何使用C1Chart进行数据绑定。接下来我们就接着之前的内容,在上个示例的基础上,进行进一步的深入研究。本部分讲述数据源是Ovservable集合的时候,如何进行数据绑定,以及如何动态绑定图表序列。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

<ComponentOne Studio for WPF下载>

在上文中,我们讨论了数据源是值集合和对象集合的时候,如何使用C1Chart进行数据绑定。接下来我们就接着之前的内容,在上个示例的基础上,进行进一步的深入研究。本部分讲述数据源是Ovservable集合的时候,如何进行数据绑定,以及如何动态绑定图表序列。

Observable集合

WPF下有一个特殊的集合类ObservableCollection,它提供了例如添加,删除或整个列表的刷新。如果以这个类作为图表的数据源,我们在数据源里做出的变化,可以直接影响到C1Chart。步骤:

第一步

我们在页面里添加System.Collections.ObjectModel的namespace,它包含ObservableCollection。同时,也要添加C1.WPF.C1Chart。

C#代码:

using System.Collections.ObjectModel;
using C1.WPF.C1Chart;
第二步

声明Point类型的ObservableCollection:

C#代码:

ObservableCollection<Point> points = new ObservableCollection<Point>();
第三步

清除所有的图表数据(如果存在的话),而且填充points集合的点。

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));
第四步

创建XYDataSeries并且绑定到这个集合上,然后添加到图表。

C#代码:

//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);

如上代码所示,您可以直接的绑定结合点到data series的ItemSource。很重要的,需要定义ValueBinding(Y)和XValueBinding到Point对象的X,Y属性。如果您所需要的对象不是Point对象,而是自定义的对象,那么您需要绑定data series值到你指定的属性。然后添加data series到chart的Data集合。通过这种方式,您可以很容易的添加多个data series。

上述代码的示例:

PS: 关于ComponentOne,这些产品你可以关注>>
本文转载自
葡萄城经典UI产品惠风迎春,惊喜折扣礼品送不停!优惠详情点击查看>>

标签:WPFComponentOne

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP