Мне нужно написать ViewModel для взаимодействия между представлением WPF и устаревшим кодом.Устаревший код связывается с частью аппаратного обеспечения, и ни один из классов не реализует какой-либо механизм уведомления, такой как, например, INotifyPropertyChanged
.
class MyDevice{
public byte[] memory = new byte[256];
public MyDevice(){
}
private void OnSerialPortDataReceived(object sender, SerialDataReceivedEventArgs e) {
// read serial port, interpret received data then update values on memory[]
if (some condition){
memory[index] = newValue;
}
}
}
Приведенный выше код обновит наш локальный массив байтов в соответствии с данными, полученными от оборудования.
Теперь допустим, что я хочу в моем представлении привязать элемент управления ListView к содержимомуиз MyDevice.memory[]
Одной из возможностей будет замена типа данных массива на ObservableCollection
.Однако это влияет на многие методы внутри MyDevice, и я бы предпочел не изменять их.
Как я могу написать ViewModel, чтобы разрешить такое взаимодействие, минимально влияя на мой унаследованный класс?