因为项目中常常用到Series Chart,而目前市面又实在找不到既支持MVVM,又轻量级的开源Chart控件,因而干脆就花了两周时间随手写了一个。昨天感受还比较满意,就发布到了Github上:https://github.com/zenjia/MvvmChartgit
Line Series,无Item Point:(从上自下依次为PolylineSeries、StepLineSeries、SplineSeries)github
Line Series,带Item Point:设计模式
Area Series,不带Item Point:mvvm
Area Series,带Item Point:ui
首先定义数据点:spa
public class SomePoint { public double t { get; } public double Y { get; } } public class DemoDataViewModel { public List<List<SomePoint>> ItemsSourceList { get; } }
而后建立DataTemplate:设计
<DataTemplate x:Key="SeriesTemplate1"> <mvvmCharting:PolyLineSeries IndependentValueProperty="t" DependentValueProperty="Y" Stroke="Red" StrokeThickness="1.5" ItemsSource="{Binding}"> </mvvmCharting:PolyLineSeries> </DataTemplate>
最后,建立一个SeriesChart,并引用上面的DateTemplate:code
<mvvmCharting:SeriesChart Background="Bisque" SeriesDataTemplate="{StaticResource SeriesTemplate1}" SeriesItemsSource="{Binding ItemsSourceList, Source={StaticResource GlobalDemoDataViewModel}}"> <mvvmCharting:SeriesChart.XAxis> <axis:XAxis /> </mvvmCharting:SeriesChart.XAxis> <mvvmCharting:SeriesChart.YAxis> <axis:YAxis /> </mvvmCharting:SeriesChart.YAxis> </mvvmCharting:SeriesChart>
(更多使用Sample见项目里的Demo工程)blog
(对UWP的支持将很快加入)继承
(欢迎批评指正,欢迎提交bug)