C# 视图中未直接使用的类是否仍然是模型(MVVM)?
我向MVVM提出以下问题: 永远不会在视图中直接使用的类(只是模型的一部分)也是模型吗? 我必须这样做吗 例如: 我有一个具有address属性的用户模型C# 视图中未直接使用的类是否仍然是模型(MVVM)?,c#,mvvm,C#,Mvvm,我向MVVM提出以下问题: 永远不会在视图中直接使用的类(只是模型的一部分)也是模型吗? 我必须这样做吗 例如: 我有一个具有address属性的用户模型 class UserModel { private Address _address; public Address Address { get => return _address; set => _address = value; } } 我必须创建一个Addr
class UserModel
{
private Address _address;
public Address Address
{
get => return _address;
set => _address = value;
}
}
我必须创建一个AddressModel和AddressViewModel,还是可以只使用一个带有数据和逻辑的Address类
解释会很有帮助,因为我想创建一个类图。:) 我认为最好的答案是你为什么在乎?如果一个类是从一个视图中使用的,那么这就对它提出了一些结构要求,比如实现
INotifyPropertyChanged
。如果您不是从一个视图使用这个类,那么您就没有这些要求。如果最终在视图中使用该类,您仍然可以实现INotifyPropertyChanged
,但您不必这样做,特别是如果很明显该类提供的功能永远不会向视图公开,比如由于法律问题或类似问题,您不能显示用户的地址
然而,对我来说,这听起来不现实。最有可能的情况是,您希望至少显示用户地址,这使地址成为一个视图模型。“我必须这样做吗”-您不必做任何事情。这取决于你的设计。ViewModels可帮助您对并非真正属于模型的内容进行建模,但对视图有用(即元素的颜色或可见性,或某些属性的可读版本)。在这个狭隘的例子中,拥有viewmodel似乎没有多大用处——但是如果应用程序能够发展,那么现在最好包括一个viewmodel,这样以后需要时,您就已经拥有了viewmodel,不需要更改其他代码