gpt4 book ai didi

c# - 一个 ViewModel 的两个并发 View

转载 作者:行者123 更新时间:2023-12-03 10:46:09 25 4
gpt4 key购买 nike

我在阅读其他帖子时得到了不同的答案,但说我有一个主要的 ViewModel,它处理两个相关的数据模型

public partial class Product
{
public string ProductName { get; set; }
public int TemplateID { get; set; }
public virtual Template Template { get; set; }
}

public Template()
{
this.Products = new ObservableCollection<Product>();
}
public int TemplateID { get; set; }
public string TemplateName { get; set; }
public virtual ObservableCollection<Product> Products { get; set; }
}

目前,有两个单独的 View 和 View 模型,一个显示所有数据“byTemplates”,另一个显示所有数据“byProducts”。两者都允许 CRUD 操作。为了摆脱重复的代码和命令,我想将这两个 View 合并为一个。

我还需要两个 ViewModel 吗?我可以同时处理同一个数据实例吗? (所以如果我在“ByTemplates” View 下插入一些东西,并在保存到数据库之前切换到“ByProducts”,我仍然会看到我拥有的所有更改吗?

编辑:

我目前正在使用标签来促进这一点。
我的观点在这里:

按产品标签
ByProduct View

通过模板选项卡(用户可以选择一个模板,“关联产品” ListView 将显示链接到"template"的所有产品)
ByTemplate View

最佳答案

您所说的很有可能,viewmodel 可以包含多个组合在一起的模型作为一个父 View 模型,并且取决于它有兴趣绑定(bind)的所有属性。
是否有两个单独的 View 是一个设计讨论,但这不是强制性的。每个模型都不需要一个 View 模型。拥有 View 模型的目的是摆脱对特定业务模型的直接依赖,并根据 UI 需求合并和塑造数据。所以是的,你可以做你想做的事。
如果您想深入了解如何做,请分享详细的 xaml 和现有模型/ View 模型,否则您已经准备就绪。

关于c# - 一个 ViewModel 的两个并发 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25733598/

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