gpt4 book ai didi

c# - MvvM模型启动对话框

转载 作者:行者123 更新时间:2023-12-03 10:29:50 24 4
gpt4 key购买 nike

我知道关于ViewModel应该如何打开对话框,模型如何启动对话框有很多问题?

模型是否应该一直调用对话框服务,而该对话框服务又一直调用 View 模型的对话框服务?该模型应该引用mvvm-light工具包吗?

专门针对我的情况-当我的模型传递一些数据以还原/解释和构建模型对象(我认为这应该是模型的工作)时,可能会出现错误。

更新1:根据fmunkert的评论,我接受了以下答案。我意识到我在问一个错误的问题,而根本的问题是为模型设计一个范式来表示错误。

最佳答案

由于MVVM不是标准,并且由于没有权威机构来决定MVVM中的正确和错误,因此,只要您不直接从MVVM中调用任何WPF对话框,就可以以任何合适的方式实现对话框。 ViewModel或模型。

在我最近编写的应用程序中,我使用了以下两种方法(使用自己的MVVM框架库):

  • 通过“服务”从ViewModel调用模态对话框。 IE。 ViewModel提供了一种使用IFrontend方法获取ShowModalDialog()指针的方法。 IFrontend有两种通用实现:一种用于WPF(打开一个对话框),另一种用于单元测试环境(仅模拟一个对话框)。
  • 有时可以在ViewModel不了解的情况下打开非模式对话框。例如。如果您有一个需要打开字体选择对话框的窗体的ViewModel,则这是用户界面详细信息,并且ViewModel确实需要了解该详细信息。 ViewModel不在乎是使用对话框还是使用下拉列表选择字体。

  • 如果您使用的是MVVM Light或Prism等第三方库,则可能应遵循该库文档中的建议。

    关于c# - MvvM模型启动对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872432/

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