1
私はLiveChartを使用していくつかの問題があります。 リアルタイムデータをセリコレクションに追加します。livecharts複数のシリーズキャストエラー
<lvc:CartesianChart DisableAnimations="True"
Hoverable="False"
DataTooltip="{x:Null}"
Series="{Binding Series}"
Zoom="Xy"
Width="1300"
/>
:
は、これは私のXAMLです。 は、私はセリエプロパティを作成しました:
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
});
}
debugChannelSelectedはメッセンジャーで受信されます。
100ms毎に私は私のセリエコレクションに新しいダブルを追加するつもりです:
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)でキャストエラーを取得しています。 。 解決方法はありますか?
Tia。