LiveCharts2将不断变化的数据绑定到图中



我是WPF和c#的新手,所以请原谅我:)我的目标是使用LiveCharts2和WPF帮助将数据绘制成图形,并实时添加数据。

我遵循了LiveCharts2的例子,添加了类ViewModel和XAML,一切都很好:

public partial class ViewModel
{
public ISeries[] Series { get; set; } =
{
new LineSeries<double>
{
Values = new double[] { 1, 2 },
Fill = null
}
};

这是静态数据。我如何将它绑定到一个随时变化的变量?或者我应该如何为此更改代码?

我尝试只编写XAML代码(视图代码),并以LiveCharts2为例,将数据添加到"值"中。但我没能做到。

我想要这样的东西,只是火和忘记&希望数据图能自动更新

new LineSeries<double>
{
Values = new double[] { myChangedata },
Fill = null
}

您需要使用ObservableCollection而不是数组,以便图表可以接收更新

public partial class ViewModel
{
private ObservableCollection<double> myChangedData = new();
public ViewModel()
{
Series.Add(new LineSeries<double>
{
Values = myChangedData,
Fill = null,
});
}
public object Sync { get; } = new();
public List<ISeries> Series { get; set; } = new();
}

然后添加数据

lock (Sync)
{
// Any changes including adding, clearing, etc must be synced.
myChangedData.Add(1D);
myChangedData.Add(2D);
}

在处理实时数据时,请确保您在图表上设置了SyncContext属性,并在任何更改之前始终锁定它。

<lc:CartesianChart Series="{Binding Series}" SyncContext="{Binding Sync}"/>

相关内容

  • 没有找到相关文章

最新更新