Как обновить диаграмму WPF, которую я использую для отображения некоторых данных (диаграмма инструментария WPF) - PullRequest
0 голосов
/ 30 сентября 2010

Как обновить диаграмму WPF при изменении коллекции? Я использую диаграмму WPF (System.Windows.Controls.DataVisualization.Toolkit.dll версия 3.5.50211.1) для построения простых данных. Классы для данных выглядят так:

public class EngineMeasurementCollection : Collection<EngineMeasurement> 
{ 

} 
public class EngineMeasurement 
{ 
    public int TimeStamp { get; set;}
    public int Speed { get; set; } 
    public int Torque { get; set; } 
    public int Power { get; set; } 
}  

В моей главной форме я получаю новые данные о обратном вызове события. Это возвращается в другой теме. Я смотрю на данные, чтобы увидеть, есть ли у них новая метка времени. Если это так, я добавляю его в свою коллекцию. Я тогда покорно звоню

Dispatcher.Invoke(myDelegate, DispatcherPriority.Normal,null) 

чтобы вернуть себя в поток GUI. Я тогда звоню:

m_ctrlLineSeriesTorque.ItemsSource = m_TorqueCollection; 

, чтобы попытаться обновить график. Я подтвердил, что попал в этот код. Я также подтвердил, что могу отображать диаграмму, если просто добавлю некоторые значения в конструктор EngineMeasurementCollection. Как получить диаграмму для обновления при добавлении новых значений в коллекцию?

Где-то я видел, что на самой диаграмме может быть метод "Обновить". Я не вижу этого. Кроме того, я увидел, что, возможно, EngineMeasurementCollection должна быть «наблюдаемой коллекцией», а EngineMeasurement должен реализовывать некоторый интерфейс. Правда?

Спасибо, Dave

1 Ответ

3 голосов
/ 30 сентября 2010

Да, ваш EngineMeasurmentCollection должен быть ObservableCollection . Тогда вам больше нечего будет делать, кроме как добавлять (или удалять) элементы в коллекцию, а система связывания WPF позаботится об остальном, чтобы обновить диаграмму. Вот почему вы должны использовать наблюдаемую коллекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...