我正在使用 DynamicDataDisplay 来绘制我的实时信号。我想在我的图表上同时显示标记和线条,所以我认为我应该使用LineAndMarker<MarkerPointsGraph>
; 当 xy 数据更新时,我的逻辑是只更新日期源,而不是添加更多的图形线。在那种情况下,如果数据很大并且更新很快,我仍然可以获得性能。我的问题是:我没有看到 DataSource 域LineAndMarker<MarkerPointsGraph>
,所以我不知道如何更新数据?这是我使用的示例,LineGraph
而不是LineAndMarker<MarkerPointsGraph>
; 但LineGraph
似乎没有处理标记。
for (int i = 0; i < _nColorChannels; i++)
{
if (_dataX[i].Length == _dataY[i].Length)
{
EnumerableDataSource<int> xOneCh = new EnumerableDataSource<int>(_dataX[i]);
xOneCh.SetXMapping(xVal => xVal);
EnumerableDataSource<int> yOneCh = new EnumerableDataSource<int>(_dataY[i]);
yOneCh.SetYMapping(yVal => yVal);
CompositeDataSource ds = new CompositeDataSource(xOneCh, yOneCh);
Action UpdateData = delegate()
{
((LineGraph)plotter.Children.ElementAt(startIndex + i)).DataSource = ds;
};
this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
UpdateData);
}
}
任何建议表示赞赏。谢谢你。缺口
一点更新:似乎MarkerPointsGraph
有 DataSource,但我如何创建MarkerPointsGraph
可以的实例AddLineGraph()
?类似于如何LineGraph
创建版本:
LineGraph lg = new LineGraph();
lg = plotter.AddLineGraph(dsOneCh, _lineprofileColor[i], marker, "Data");