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