2

動的データ表示ライブラリを使用して、動的な整数値を頻繁に表示し、それを折れ線グラフ (「line1」) として「plotter」というチャートプロッターにプロットしています。私が望むのは、チェックボックスのチェックを外したときにチャートプロッターからすべてのデータを消去し、もう一度チェックしてプロットを再開する方法を用意することです。私は plotter.Children.Remove(line1) でそれを達成できるかもしれないと思っていましたが、古いデータは消去されません。代わりに、古いデータを再度プロットすると、データ行が二重になります。ここに私がこれまでに持っているコード例 (いくつかの疑似コードを含む) があります。

ObservableDataSource<System.Windows.Point> source1=new ObservableDataSource<System.Windows.Point>();
LineGraph line1=new LineGraph(source1);
line1.Name = "Data1";
int i=0;
start a timer to CaptureData...
CaptureData(....,...)
{
  if a CheckBox is checked...()
 {
    if (i == 0)
    {
    plotter.Children.Add(line1);
    }
    double graph_x = Convert.ToDouble(i);
    double graph_y = Convert.ToDouble(datapoint that I have);
    System.Windows.Point p1 = new System.Windows.Point(graph_x, graph_y);
    source1.AppendAsync(Dispatcher, p1);
    i++;
    }
 }
 Once the checkBox is unchecked
 {
    if (i != 0)
      {
         i=0;
         plotter.Children.Remove(line1);
      }
 }
}

これは、最初にデータが再びプロットされ始めたときに取得している折れ線グラフですが、古いデータがまだそこにぶら下がっています。私が達成したいのは、古い線が存在しないきれいな新しいグラフです。画像を投稿するための最低ポイントがありません。こちらの画像をご覧ください: https://dl.dropboxusercontent.com/u/49447650/test5.png

4

1 に答える 1

0

ソースをクリアする必要があります:

source1.RemoveAll(typeof(Point));
于 2014-07-11T14:38:22.387 に答える