我的問題要求我根據一些依賴驗證跨視圖模型各個領域。我正在使用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