gpt4 book ai didi

wpf - 强制 WPF 组件在引发事件时进行验证

转载 作者:行者123 更新时间:2023-12-04 22:16:29 25 4
gpt4 key购买 nike

在我的 MVVM 应用程序中,我有一个实现 IDataErrorInfo 和 INotifyPropertyChanged 的​​元素列表

当引发 propertychanged 事件时, View 会验证 VM 对象。

问题是验证结果不仅取决于对象的内部状态,还取决于属于列表的其他对象的“环境”。

所以我需要在每次删除或更新对象时对列表的所有元素调用验证。

我怎样才能以这种方式强制验证?

最佳答案

在保存列表的 VM 中,每次列表更改时,迭代列表并告诉每个对象通过将属性名称设置为空字符串来针对您知道可能无效的属性或仅针对每个属性发出属性更改通知。

听起来您的验证可能跨越多个对象,在这种情况下,您需要从上述 VM 运行验证并在集合中的适当对象中设置错误消息,然后在这些对象上引发属性更改事件。

我以前通过 SetErrorMessage(string string) 完成此操作实现 IDataErrorInfo 的对象上的公共(public)方法和公共(public) OnPropertyChanged(string)方法,以便我可以设置错误并从对象外部引发上下文属性更改事件。

错误将存储在字典中,this[string]属性将查找字典中的错误并运行自己的验证。

关于wpf - 强制 WPF 组件在引发事件时进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3863686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com