我需要编写一个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;
}
}
}
上面的代码将根据从硬件接收的数据更新本地字节数组。
现在可以说我要在View中将ListView控件绑定到MyDevice.memory[]
的内容
一种可能性是用ObservableCollection
替换数组数据类型。但是,这会影响MyDevice内部的许多方法,我宁愿不更改它们。
如何编写一个ViewModel来允许这种交互,从而最小程度地影响我的旧类?