我在LightningChart中看到了3个WPF API。可结合/半可结合且不可结合。它们的确切区别是什么?
如何绑定数据点集合以制作折线图?
答案 0 :(得分:4)
可绑定图表API :DependencyProperties,基于ObservableCollection的列表和数据输入。绑定一切。在XAML中配置。与竞争对手相比,性能良好,但不如半可绑定或不可绑定。性能差异尤其表现在使用数百个系列和数百万个数据点时。
半可绑定图表API :列表中的DependencyProperties,ObservableCollections。数据输入是基于数组的,必须在代码隐藏中完成。因此,您可以绑定UI设置和图表对象,但只需在代码中提供数据。非常好的表现。
不可绑定的图表API :没有DependencyProperties,任何列表或数据输入中都没有ObservableCollections。代码隐藏中的常规属性和用法。最佳性能和多线程功能。我们的demo application显示,可以在实时监控中监控超过十亿个点。
使用Bindable图表API,您可以像这样配置图表和绑定
<Window x:Class="BindingExamplePointLineSeries.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:lcub="http://schemas.arction.com/bindablecharting/ultimate/"
x:Name="thisTest"
Title="MainWindow" Height="350" Width="525">
<Grid>
<lcub:LightningChartUltimate>
<lcub:LightningChartUltimate.ViewXY>
<lcub:ViewXY>
<lcub:ViewXY.YAxes>
<lcub:AxisY/>
</lcub:ViewXY.YAxes>
<lcub:ViewXY.XAxes>
<lcub:AxisX/>
</lcub:ViewXY.XAxes>
<lcub:ViewXY.PointLineSeries>
<lcub:PointLineSeries Points="{Binding ElementName=thisTest, Path = Points}" PointsVisible="True"/>
</lcub:ViewXY.PointLineSeries>
</lcub:ViewXY>
</lcub:LightningChartUltimate.ViewXY>
</lcub:LightningChartUltimate>
</Grid>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Random rand = new Random();
SeriesPointCollection points0 = new SeriesPointCollection();
for (int i = 0; i < 10; i++)
{
SeriesPoint p = new SeriesPoint();
p.X = i;
p.Y = rand.NextDouble() * 10.0;
points0.Add(p);
}
Points = points0;
}
public static readonly DependencyProperty PointsProperty =
DependencyProperty.Register(
"Points",
typeof(SeriesPointCollection),
typeof(MainWindow)
);
public SeriesPointCollection Points
{
get { return GetValue(PointsProperty) as SeriesPointCollection; }
set { SetValue(PointsProperty, value as Object); }
}
}