gpt4 book ai didi

wpf - MVVM 加载数据的代码在哪里?

转载 作者:行者123 更新时间:2023-12-04 19:21:43 27 4
gpt4 key购买 nike

当我把头放在 mvvm 上时, View 就是 View , View 模型是“ View 的模态”,模型是我们正在处理的实体(或者至少这是我的理解)。但我不清楚填充模型实体的内容和时间。例如:

假设我有需要在数据库中创建新记录的应用程序。并且该记录应该具有默认值。谁负责新记录,并获取默认值。这与 MVVM 有什么关系,还是数据访问层的一部分?谁调用 View 模型?

或者对于现有记录何时\在哪里检索记录?如果更改则保存?

谢谢

最佳答案

在一个过于简单的答案中,您的 ViewModel 应该包含用于控制您的 View 显示内容的逻辑,以及如何允许它与模型或数据交互。

获取数据、保存和删除等事件通过命令机制被拦截并推送到 ViewModel 中,在那里可以对其进行测试。处理“脏”事件也是 ViewModel 的职责。至于谁调用 ViewModel,您将调用委托(delegate)给 WPF 和 Silverlight 中可用的绑定(bind)机制。

在 ViewModel 中,它仍然是关于保持最佳实践并确保您有一个 DataAccess 层来抽象您的数据源,并可能使用 Repository 模式来抽象它。

ViewModel 的生命周期可以像下面这样简单......

  • View 调用的构造函数
  • ViewModel Tor 调用的 GetData 方法
  • 接收并推送到现有 View 数据绑定(bind) ObservableCollection 属性的数据

  • 但是,由于您可能在 VM 的 Ctor 中有很多事件部件,包括数据存储库接口(interface),您可能希望使用 IoC。这将使 ViewModel 的生命周期更接近...
  • View/ViewModel(取决于您首先是 View 还是 ViewModel)被拉出 IoC
  • IoC 处理 View-ViewModel 的配对(基于约定)
  • 数据存储库被注入(inject)到 ViewModel
  • ViewModel Tor 调用的 GetData 方法
  • 接收并推送到现有 View 数据绑定(bind) ObservableCollection 属性的数据

  • 这可能看起来需要更多步骤,但是对于 IoC 容器,您实际上只是调用了一个方法,例如 IoC.Get(),其余步骤将根据应用的约定自动连接起来。

    关于wpf - MVVM 加载数据的代码在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2879546/

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