开始使用所有这些 MVVM 的东西,我正在关注Josh Smith 的这篇文章,其中讨论了使用 MVVM 时的验证方法。这个例子很简单,我开始想知道如何在我自己的应用程序中使用它。
在我的 BLL 中,我有一个BookInfo
实现 IDataErrorInfo 以报告无效值的类,例如“发布日期不能在将来”或“页数不能为负数”。然后我AddBookViewModel
会检查新创建的状态BookInfo
,看看是否存在错误,并且AddBookView
会在相应的文本框旁边显示一个红色斑点。这些东西很简单,就像帖子中的示例一样。
现在我的BookInfo
班级还拥有一个作者 ID 列表。在向我的数据库添加新 BookInfo 时,我需要检查这些作者 ID 是否已经存在。
是否应该在我的BookInfo
课堂上进行这项检查?如果是这样,那么我必须将 BLL 的AuthorManager
对象传递给BookInfo
' 的构造函数,因为前者将包含诸如CheckIfExists(int authorID)
.
这是推荐的方法吗?如果数据库中有很多记录怎么办?动态检查会影响性能吗?
另一方面,在BookInfo
课堂上和其他地方进行一些检查似乎有点混乱......尤其是当所有这些检查都可以归类到同一组时......即。确保新创建的BookInfo
对象有效。或者也许我错了,因为我真的没有经验来做出正确的判断。
一些指导?