我有一个实现 IDataErrorInfo 和主细节 View 的 ViewModel。当用户点击详细 View 中的保存按钮而不是更早时,如何触发当前 ViewModel 项的验证?
最佳答案
首先在您的 VM 上包含一个标志,将其初始设置为 false。
在您的 Button 命令代码中(假设您已将按钮绑定(bind)到 VM 上的命令),在运行验证代码之前打开标志。
在 IDataErrorInfo 属性中的“get”代码中,如果标志设置为 true,则仅返回验证错误,否则返回空字符串。
在将标志切换回 false 之前,引发一个使用空字符串作为属性名称的 PropertyChangedEvent,这将强制绑定(bind)系统重新评估当前上下文中的所有绑定(bind),并针对 IDataErrorInfo 检查错误。
关于wpf - 单击按钮时验证 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383297/