我的问题要求我根据一些依赖验证跨视图模型各个领域。我正在使用Silverlight,Prism和MVVM。验证通过视图模型图/树
为例(从我的现实世界中的场景改变):
每艘可拥有许多容器,容器可以有很多的项目。
每个类都从NotificationObject
继承,每当属性发生更改时都会调用RaisePropertyChanged
。
我的业务规则,以确保Item.Colour,Item.Name和Item.Size不是空当地产Ship.TypeId等于1。如果Ship.TypeId等于别的,我不需要在项目来验证性能。
目前验证在OnPropertyChanged
事件视图模型正在开展。
我所面临的问题是,如果我在项目类添加验证,那么该对象有没有的知识Ship.TypeId。如果我申请了项目和甩出集装箱的PropertyChanged
事件,我可以检测从船舶内财产的变化,但只能获得属性名(相对于子类,即名称),但没有新的或旧值。
我希望能够做的是验证子项,同时明知Ship.TypeId的,也知道哪一个名称,颜色或尺寸属性发生变化,并能在用户界面上针对正确的字段提出错误。
非常感谢, 阿德里安
你在使用IDataErrorInfo吗? – 2012-04-18 08:17:08
我正在使用'INotifyDataErrorInfo',它看起来好像我正在使用的'NotificationObject'类有一个自定义的'AddError'方法,它将错误添加到字典中。 – 2012-04-18 08:19:39
为什么你需要旧的价值观? – GazTheDestroyer 2012-04-18 10:43:38