【问题标题】:Autogenerated MVVM: Validation and INotifyPropertyChanged自动生成的 MVVM:验证和 INotifyPropertyChanged
【发布时间】:2015-02-21 02:29:21
【问题描述】:

我知道有几个关于是否在模型上实现 INPC 的问题,大多数争论都是关于由于属性代理而导致的代码重复,在这种情况下这不是问题,因为模型和视图模型将由自动生成一个工具,所以任何代码大小的参数都是无效的。

除了代码大小之外,不在模型上实现 INotifyPropertyChanged 还有什么缺点吗?

另外,生成的模型会被程序员直接使用,而视图模型只会被其他生成的代码使用,因此视图模型的大小和复杂性将被隐藏,但模型必须尽可能简单在不丢失功能的情况下,在这种情况下在模型或视图模型中实现验证和计算属性更好吗?

考虑模型可能是也可能不是数据库实体。

谢谢

【问题讨论】:

    标签: wpf database mvvm entity auto-generate


    【解决方案1】:

    这个问题太笼统了,无法回答。 “最好实施……?” : 这取决于应用程序的需要。理想情况下,模型具有所有属性,而视图模型只是您填充模型并编写必要业务逻辑的地方。

    既然您在谈论自动生成,我想您已经编写了一些进行此创建的实用程序。理想情况下,验证应该存在于模型和视图模型中。模型端验证应该检查任何数据库/服务器端验证(如果存在),并且 ViewModel(VM) 应该验证客户端,例如:在 VM 中,您验证属性是否大于其他属性,但在模型验证中您将验证 uniqness 或 null 等。

    其他是计算出来的属性(我希望这意味着在数据库中完成计算并填写一个属性),这些属性理想情况下应该驻留在 ViewModel 上。

    希望这能回答您的问题。

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 2011-09-21
      • 1970-01-01
      • 2011-06-25
      • 2013-04-01
      • 2015-11-24
      • 2011-06-03
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多