gpt4 book ai didi

c# - MVVM 上 ViewModel 设计中的继承

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

我对带有继承的 ViewModel 设计有点困惑。

场景:

我有一个用户实体的数据模型和多个 View 模型。我正在使用 ADO.Net 从数据库绑定(bind)中获取数据模型。并且数据模型可以传递给不同的 ViewModel。一两个 View 看起来还可以。但是当我的 View 数量增加时,我需要不同的 View 模型。我还想避免 ViewModel 中的冗余字段。我创建了一个 UserBaseModel。所以所有的 ViewModel 都继承自它

问题:

我有 UserSetting View 和 UserRegistration View 的密码和确认密码字段,并且我创建了 UserSettingViewModel 和 UserRegistrationViewModel。而且我认为其他 View 模型不需要这些字段。我不想在 UserBaseModel 中定义字段,也不想为两个 ViewModel 中的相同字段定义多次。

有没有其他选择?欢迎提出建议和意见

最佳答案

由于 C# 不支持 multiple inheritance您不能从第二个基础模型中派生模型。您基本上最终会创建另一个源自 UserBaseModel 的基本 View 模型。并包含密码属性:

public UserBaseModelWithPassword : UserBaseModel
{
public string Password { get; set; }

public string PasswordConfirm { get; set; }
}

那么可以推导出 UserSettingViewModelUserRegistrationViewModel从中。

关于c# - MVVM 上 ViewModel 设计中的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469260/

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