我在使用 LiveCharts 时遇到了一些问题。我要将实时数据添加到系列集合中。
这是我的 Xaml:
<lvc:CartesianChart DisableAnimations="True"
Hoverable="False"
DataTooltip="{x:Null}"
Series="{Binding Series}"
Zoom="Xy"
Width="1300"
/>
. 我创建了一个 Serie 属性:
private SeriesCollection series;
public SeriesCollection Series
{
get { return series; }
set { SetProperty(ref series, value, "Series"); }
}
在构造函数中初始化它:
Series = new SeriesCollection();
Series.Add(new GLineSeries()
{
Name = debugChannelSelected.Name.Replace(' ', '_'),
Title = debugChannelSelected.Name,
Stroke = (Brush)new BrushConverter().ConvertFromString(debugChannelSelected.Color),
Values = new GearedValues<double>(),
Fill = Brushes.Transparent,
PointGeometry = null
});
}
Messenger 接收到 debugChannelSelected。
每 100 毫秒,我将在我的系列系列中添加一个新的替身:
for (var j = 0; j < SelectedChannels.Count(); j++)
{
if (SelectedChannels[j] != null)
{
var serie =
Series.FirstOrDefault(w => w.Title.Equals(SelectedChannels[j]));
for (var i = 0; i < dataSize; i++)
{
var dbt = Convert.ToDouble(rnd.Next(-1000, 10000));
if (serie != null)
{
dbtValues[i] = dbt;
serie.Values.Add(dbt);
if (IsContinuousAcquisition && serie.Values.Count > 1000)
{
serie.Values.RemoveAt(0);
}
}
var dbtGear = dbtValues.AsGearedValues();
serie.Values.AddRange(dbtValues);
}
else
break;
}
但我在 serie.Values.AddRange(dbtValues); . 您对如何解决它有任何建议吗?
蒂亚。