gpt4 book ai didi

wpf - Caliburn.Micro - 包装模型还是直接暴露它?

转载 作者:行者123 更新时间:2023-12-02 07:22:37 24 4
gpt4 key购买 nike

我目前正面临 MVVM 中讨论最多的问题之一:我的 WPF 应用程序中有一个复杂的模型,我不确定应该如何将其数据显示到 View 。

根据 StackOverflow 上的许多答案以及 this article有两种方式:

  1. 通过在 ViewModel 中为模型中的每个属性添加一个属性,将模型包装在 ViewModel 中

  2. 将模型直接暴露给 View 而不复制属性。

目前我的理解是,从理论的角度来看,第一种方法更好,而第二种方法是应该避免的捷径。

same article我之前链接过,作者是这样写的:

In reviewing the sample application from the Caliburn framework, they implement the VM using option 2.

我查看了 Caliburn.Micro 文档,不幸的是它只使用了一个没有真实模型的简单 ViewModel,所以我不知道如何验证这个说法。

作者说的对吗?由于我使用的是 Caliburn.Micro,我应该使用第二种方法而不是第一种方法以便更“兼容”框架实现吗?

最佳答案

Since I'm using Caliburn.Micro should I use the second approach instead of the first one in order to be more "compliant" with the framework implementation?

没有。 Caliburn.Micro 只是一个 MVVM 库。 如何实现实际的 MVVM 模式完全取决于您。

我同意@Marek Dzikiewicz 的观点,您应该将模型包装在一个 View 模型类中,该类可以实现 INotifyPropertyChanged 接口(interface)并提供任何其他特定于 UI 的功能。此代码不属于业务对象。您可以在此处引用我的回答以获取更多信息:

Reuse the same models in ASP.NET MVC and WPF MVVM

显然,如果模型类确实是未在任何其他应用程序中使用且不包含在服务器端使用的任何业务逻辑的 UI 特定类,您可以修改此类并直接绑定(bind)到它。但它毕竟是一种(子) View 模型。

关于wpf - Caliburn.Micro - 包装模型还是直接暴露它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41675260/

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