假设一个 ViewModel
发布了一个 Event
,而使用该 VM 作为其 DataContext
的 View
通过将其 DataContext
强制转换为 VM 实例来订阅该 Event
:
vm = DataContext as MainViewModel;
if (vm == null) return;
vm.SomeUIRelatedNotice += DoSomethingUIRelated;
我认为,虚拟机仍然保持解耦状态,其可测试性不受任何影响。视图已经引用了虚拟机,所以我并不认为这有任何问题。但是,我想听听 MVVM 纯粹主义者的意见,看是否认为这是对 MVVM 模式的负面影响和不良设计。