gpt4 book ai didi

wpf - ViewModel/View 关系和验证

转载 作者:行者123 更新时间:2023-12-04 17:42:26 25 4
gpt4 key购买 nike

在我们的 WPF 应用程序中,我们希望使用基本的 MVVM 模式。我们正在讨论它,并且出现了一些关于 ViewModel/View 关系和验证的不确定性。你说下面是不是很好理解呢?

  • 每个 View 都有一个且只有一个 ViewModel
    而 ViewModel 的目的是
    为其 View 提供数据和
    处理其所有 View 的事件和
    命令。 (是否存在一个 ViewModel 为两个 View 提供服务的情况,例如一个标准的 XAML 输入表单 View 和一个 CSV 导入,它提供与表单相同的数据,因此需要具有相同的验证?)
  • 验证仅由 ViewModel 处理 当例如风景
    引发 ChangedFocus 或 SaveButtonPressed 事件等。
  • 模特很傻 , 只是
    基于一个或一个的数据结构
    来自数据库的更多表,但是
    模型本身不处理
    验证,例如。它甚至是构建和保存对象的 ObservableCollection 的 ViewModel,例如“客户”而不是模型本身。

  • 任何反馈表示赞赏。

    最佳答案

    Every View has one and only one ViewModel



    我认为如果您严格遵守模式,那么每个 View 将只有一个 ViewModel。我们的应用程序中有一个案例,需求在中途发生了变化,最容易让 View 引用两个不同的 ViewModel。根据您实现模式的方式,这可能或不可能。

    Are there instances where one ViewModel services two Views



    是的,这是该模式的优势之一。

    Validation is handled solely by the ViewModel



    不必要。我们选择让我们的模型类实现 IDataErrorInfo 并自己进行验证。这确保无论在哪里使用 Model 类,验证都是相同的。如果验证需要更改,它只是在一个地方。

    The Model is pretty dumb



    它只是像你想要的那样愚蠢。如果您愿意,您可以在模型中包含验证和业务规则。

    关于wpf - ViewModel/View 关系和验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/725171/

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