gpt4 book ai didi

wpf - View 中对 ViewModel(这是它的 DataContext)的引用是否以任何方式对 MVVM 模式有害?

转载 作者:行者123 更新时间:2023-12-04 18:20:10 25 4
gpt4 key购买 nike

假设一个 ViewModel发布 Event和一个 View使用该虚拟机作为其 DataContext订阅该 Event通过强制转换 DataContext 来获取对 VM 的引用到虚拟机实例:

vm = DataContext as MainViewModel;
if (vm == null) return;
vm.SomeUIRelatedNotice += DoSomethingUIRelated;

在我看来,VM ramins 解耦并且它的可测试性丝毫不受影响,并且 View 已经有对 VM 的引用,所以我认为这根本没有问题,但我想听听 MVVM 纯粹主义者的意见,如果他们认为这是对 MVVM 模式有负面影响的糟糕设计,如果是这样,为什么?

最佳答案

只要 View 模型本身不执行任何 View 逻辑,我认为这不会破坏 MVVM 模式。

看起来在您的情况下, View 模型正试图以某种方式交互和引导 View ,因此您可能应该知道还有其他方法可以实现这种行为,这些方法被认为是更纯粹的 MVVM:

  • MVVM Light 工具包的 Messenger service
  • 棱镜 EventAggregator 或其 interaction patterns
  • 关于wpf - View 中对 ViewModel(这是它的 DataContext)的引用是否以任何方式对 MVVM 模式有害?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21342444/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com