我有一个包含 50 个左右属性的业务对象列表(1000+),它们有大约 70 个需要执行的不同验证。似乎要走的路是使用验证规则,但我真的很喜欢IDataErrorInfo
. IDataErrorInfo
为每个对象定义而他们一直使用相同的验证是否浪费内存?
PS:我没有发布代码,因为它看起来庞大而乏味。
我有一个包含 50 个左右属性的业务对象列表(1000+),它们有大约 70 个需要执行的不同验证。似乎要走的路是使用验证规则,但我真的很喜欢IDataErrorInfo
. IDataErrorInfo
为每个对象定义而他们一直使用相同的验证是否浪费内存?
PS:我没有发布代码,因为它看起来庞大而乏味。
IDataErrorInfo
只包含一对属性。
它没有每个实例的开销。
由您决定执行良好的实现;应该不会太难。
我非常喜欢扩展内置的 ValidationRule 类并直接在绑定中使用它,而不是使用 IDataErrorInfo。
在这里查看我的博客文章,看看它是否有帮助:将数据绑定、验证和 MVVM 提升到新的水平 - 第 1 部分。这集中于如何使用它来验证 TextBox,但完全相同的事情适用于任何可绑定元素,即 DataGrid 上的列。它给您带来的好处是您可以将验证代码排除在您的视图模型和模型之外(如果您使用的是那种模式),验证可以在任何地方重用,并且您可以非常精细地了解应用验证的位置和位置。