Сброс данных картплоттера на C# WPF

Я использую динамическую библиотеку отображения данных для просмотра динамического целочисленного значения, поступающего с частыми интервалами, и нанесения его в виде линейного графика ('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

1 ответ

Вы должны очистить источник:

source1.RemoveAll(typeof(Point));
Другие вопросы по тегам