Я пытаюсь создать окно списка, которое отображает набор данных, которые будут обновляться с течением времени. У меня есть простое окно списка:INotifyPropertyChanged Реализовано теперь что?
<ListBox Name="lbRegisters" ItemsSource="{Binding}" />
И я определил класс для моих объектов:
public class register : INotifyPropertyChanged
{
private int address;
public int Address { get { return address; } }
private int value;
public int Value
{
get{ return value; }
set{
this.value = value;
OnValueChanged("Value");
}
}
public register(int a)
{
address = a;
value = 0;
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnValueChanged(string name){
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
public override string ToString()
{
return address + ": " + value;
}
}
И я держу список этих в ObservableCollection < регистра >. Затем установите ListBox.ItemsSource = registerslist; в CodeBehind. Список инициализируется, и исходные данные отображаются правильно.
Теперь что мне нужно сделать, чтобы обновить ListBox при изменении «register.Value». Вызывается обработчик событий, но на событие ничего не подписано.
Мне кажется, мне нужно вызвать что-то в ListBox или ObservableCollection, чтобы сообщить графическому интерфейсу обновить. Я прочитал десятки сообщений аналогичной проблемы, но все они, похоже, указывают на то, что после того, как вы внедрили INotofyPropertyChanged, это просто автоматическая работа.
Каков следующий шаг?
Похож на незавершенный вопрос. –