我最近一直在尝试养成在我正在从事的项目中使用 MVVM 设计模式的习惯,目的是解耦应用程序中的各种模块并使其适合单元测试。
我已经转向输入验证。我在我的 ViewModel 中实现 IDataErrorInfo ......这似乎对 TextBox 工作得很好。
我目前正在尝试研究如何在绑定到自定义对象的 ObservableCollection 的 ListBox 控件上实现 IDataErrorInfo。问题是每一行(ListBoxItem)都直接更新模型,所以我在 ViewModel 中的 IDataErrorInfo 实现被绕过了。所以我看到它的方式我可以做两件事之一 -
1) 创建一个辅助 ViewModel(代表 ListBoxItems),我用它来填充 Observable Collection 并在其上实现 IDataErrorInfo。
2) 在我的模型上实现 IDataErrorInfo。但是,由于 ViewModel 主要用于中继来自我的模型的引用,因此我可能会考虑将所有 IDataErrorInfo 实现移动到我的模型类以保持一致性......
你会怎么办?
另外...关于创建可重用验证方法的任何建议,我可以轻松地将其应用于任何类型的控件?
干杯