Я работаю над WPF-приложением, которое использует OxyPlot.WPF - OxyPlot - привязка к DataPoints
Я следовал примеру. Я успешно черчения диаграммы, используя следующий код XAML:
<oxy:Plot Height="640" HorizontalContentAlignment="Stretch" VerticalAlignment="Stretch">
<oxy:Plot.Series>
<oxy:LineSeries ItemsSource="{Binding ResultSet1}" />
<oxy:LineSeries ItemsSource="{Binding ResultSet2}" />
<oxy:LineSeries ItemsSource="{Binding ResultSet3}" />
</oxy:Plot.Series>
</oxy:Plot>
Моего ViewModel выглядит следующим образом:
public class MyViewModel
{
public IList<DataPoint> ResultSet1 { get; set; }
public IList<DataPoint> ResultSet2 { get; set; }
public IList<DataPoint> ResultSet3 { get; set; }
public void Load()
{
this.ResultSet1 = new List<DataPoint>
{
new DataPoint(0, 4),
new DataPoint(40, 12),
new DataPoint(50, 12)
};
this.ResultSet2 = new List<DataPoint>
{
new DataPoint(-0.4, 3),
new DataPoint(8, 12),
new DataPoint(48, 11)
};
this.ResultSet3 = new List<DataPoint>
{
new DataPoint(2, 5),
new DataPoint(12, 14),
new DataPoint(52, 13)
};
}
public void Refresh()
{
this.ResultSet1 = new List<DataPoint>();
this.ResultSet2 = new List<DataPoint>();
this.ResultSet3 = new List<DataPoint>();
System.Windows.MessageBox.Show("should be empty");
}
}
В моем коде, у меня есть кнопка «Обновить». Когда пользователь нажимает на это, я пытаюсь обновить отображаемые данные. Однако его результаты, как и результаты, не обновляются в пользовательском интерфейсе. Я добавил MessageBox
, показанный выше, чтобы убедиться, что я действительно попал в метод Refresh
. Появится это окно сообщения. Итак, на данный момент, я знаю:
a) Карточка OxyPlot работает, потому что мои начальные значения результата, жестко закодированные, выглядят отлично. b) Я успешно подключил модель обзора. c) Я получаю метод Refresh
.
Я просто не знаю, почему точки на карте, кажется, не освежают. Любые идеи оценены!
Вы должны реализовать 'INotifyPropertyChanged' для модели представления; В противном случае связанный объект 'ItemsSource' в режиме просмотра все еще прослушивает изменение старых объектов и не будет знать, что свойство заменяется (указывая на новый объект после Refresh). – Peter
:). На днях я буду помнить 'INotifyPropertyChanged'. По какой-то причине я всегда забываю. Большое вам спасибо за ваш ответ. – user70192
@Peter, я думаю, вы должны написать ответ на вопрос;) –