我是 MVVM 和 WPF 本身的新手。我需要在 WPF 中做一些原型设计并达到概念性问题。
假设您有向您发送数据的服务器。无论您是否显示当前是否需要将其存储在缓存中,这都是您的“真实数据”,有时您需要将其放在 UI 上(当用户打开特定屏幕时),这就是您的视图模型。
我的问题很明显——我应该将 UI 绑定到存储在某个服务中的真实数据,还是应该围绕该数据做一个 viewmodel 包装器并绑定到它?在第一种情况下,除非我使用 Dispatcher,否则我会收到“调用线程无法访问此对象”异常,但在模型中调用 Dispatcher 看起来不正确
在后一种情况下,我将需要:
- 将 90% 的数据从“真实模型”复制到包装器
- 手动观察底层“真实数据”的变化以更新视图模型,以防万一实现 INotifyPropertyChanged。
正确的方法是什么?