0

我正在使用 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");
4

1 回答 1

0

像这样的东西:

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()
                        {

                            ((PointsGraphBase)plotter.Children.ElementAt(startIndex + i + 1)).DataSource = ds; 

                        };

                    this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, UpdateData);
                }

投射到PointsGraphBase

于 2013-02-14T22:14:38.917 回答