gpt4 book ai didi

xamarin - 我应该如何使用 Prism 和 Unity 构建一个 View 的多个实例,所有这些实例都具有非常相似的 ViewModel

转载 作者:行者123 更新时间:2023-12-03 11:02:31 24 4
gpt4 key购买 nike

我正在使用 XamarinForms 和 Prism for MVVM,并将 Unity 作为我的 IoC 容器。

我正在重构前员工处理的大量重复的 View 和 ViewModel 代码。他们所做的基本上是剪切和粘贴一个非常复杂的 View 和 ViewModel。我需要更改其中的一些内容,并且由于这个意大利面条代码而不得不这样做 5 次。这基本上是 View 的样子:

enter image description here

这些 CardView 的 5 个实例及其不同的 Viewmodel 具有一个主标题、3 个标签和 3 个与标签相关的值。这些值是使用各种 restful 调用来检索的(所有这些都使用各种参数来检索它们并处理调用的结果)。

我的问题是,我应该使用什么模式来简化这 5 个 View 和 View 模型,最好只简化为我需要更改的 1 个文件?粗略地说,我认为我应该有一个 ViewModel 来提供获取远程数据所需的所有文本、值和函数。但是我对我似乎可以使用的所有不同方法(ViewModel 接口(interface)、依赖注入(inject)、使用同一 ViewModel 的不同实例注册模板 View 的方法等)摸不着头脑。

使我的问题特别复杂的是,这 5 个不同的 View 被拆分为 Prism 模块(即 .NET 项目)。我理解对这些的需求,但它们似乎只是增加了在很大程度上做同样事情的重复代码的问题。也许这些应该包含restful调用和处理的逻辑?但是,这如何适应我上面的 ViewModel/View 关联问题呢?

我将继续研究最好的方法来做到这一点,但我只是想知道是否有人可以引导我进入最佳实践方向?

最佳答案

如果您有五个看起来相同的 View 和五个执​​行(几乎)相同操作的 View 模型,则每个删除四个。要考虑 View 模型执行的差异,请创建服务。
BookService可能实现GetTitles通过在 DvdService 中查询书名的休息服务查询另一个休息服务以获取 DVD 标题。他们都实现了ITitleService .然后 UnifiedViewModel通过传递 BookService 专门用于书籍(最好通过构造函数注入(inject)),因此它完全符合 BookViewModel以前做过。刚才你有一个 View 模型和五个服务,而之前你有五个 View 模型。

关于xamarin - 我应该如何使用 Prism 和 Unity 构建一个 View 的多个实例,所有这些实例都具有非常相似的 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50697732/

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