2017-10-09 56 views
1

我在使用LiveCharts时遇到了一些问题。 我将把实时数据添加到serie集合中。活动图表多个系列投射错误

这是我的XAML:

<lvc:CartesianChart DisableAnimations="True" 
              Hoverable="False" 
              DataTooltip="{x:Null}" 
              Series="{Binding Series}" 
              Zoom="Xy" 
              Width="1300" 
              /> 

。 我创建了一个意甲属性:

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。

回答

0

我已经改变了Series.Add方法如下:

    Series.Add(new GLineSeries() 
        { 
         Name = debugChannelSelected.Name.Replace(' ', '_'), 
         Title = debugChannelSelected.Name, 
         Stroke = (Brush)new BrushConverter().ConvertFromString(debugChannelSelected.Color), 
         Values = new ChartValues<ObservableValue>(), 
         Fill = Brushes.Transparent, 
         PointGeometry = null 
        }); 

现在我能够使用的AddRange。