我知道有几个关于是否在模型上实现INPC的问题,大多数参数是关于代码重复的,因为属性代理,在这种情况下不会引起关注,因为模型和ViewModel将由自动生成一个工具,所以任何代码大小的参数都是无效的。
除了代码大小之外,在模型上不实现INotifyPropertyChanged有什么缺点吗?
此外,生成的模型将由程序员直接使用,但ViewModel将仅由其他生成的代码使用,因此视图模型的大小和复杂性将被隐藏,但模型必须尽可能简单在不失去功能的情况下,最好在模型或视图模型中实现验证和计算属性吗?
考虑模型可能是数据库实体。
由于
答案 0 :(得分:1)
这个问题太过通用了。 "最好实施......?" :这取决于应用需求。理想情况下,Model具有所有属性,而Viewmodel只是填充模型并编写必要业务逻辑的地方。
既然你在谈论自动生成,我想你已经编写了一些实现这种创作的工具。理想情况下,验证应该存在于Model和ViewModel中。模型侧验证应该检查任何数据库/服务器端验证(如果存在)并且ViewModel(VM)应该验证客户端例如:在VM中验证属性是否大于某个其他属性,但在模型验证中你会验证uniqness或null等。
其他的是计算属性(我希望这意味着在数据库中完成计算并填充属性),理想情况下这些属性应该驻留在ViewModel上。
希望这能回答你的问题。