LightningChart中的系列数据绑定

时间:2016-07-06 05:45:23

标签: wpf data-binding charts

我在LightningChart中看到了3个WPF API。可结合/半可结合且不可结合。它们的确切区别是什么?

如何绑定数据点集合以制作折线图?

1 个答案:

答案 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); }
    }
}

然后你得到你的数据绑定的图表: WPF data binding chart