【发布时间】:2014-01-30 17:11:48
【问题描述】:
我使用 Silverlight 5 创建了一个应用程序。其中有许多双向数据绑定。我想通过恢复后面的对象来恢复 UI 的变化。例如:
我有一个对象,它后面包含属性 double Left,Right,我从 INotifyPropertyChanged 继承了它。在 UI 中,我创建了两个按钮(ButtonLeft 和 ButtonRight)及其父级 Canvas 控件,ButtonLeft 在双向模式下绑定 Left 属性,而 ButtonRight 在双向模式下绑定 Right 属性。效果很好,如果我拖动 ButtonLeft,Left 属性将更新为新的 Left 值,ButtonRight 也是如此。
UI 改变后有什么方法可以恢复旧值。实际上,我的应用程序中的类关系非常复杂,我已经知道恢复对象中属性的值会恢复 UI,那么有没有办法(更通用和松耦合)恢复所有需要的对象要恢复。
我曾想过为需要保存和恢复状态的对象创建一个 IRestorable 接口(在 Store()、Restore() 内部)。需要恢复的属性的可恢复属性。对我来说,使用 AOP 可能是一个好主意,每次创建 IRestorable 的实例时,AOP 都会调用一个方法来保存对象的当前状态(标记为 [Restorable] 的属性)。我不知道我是否走对了路。如果没有,任何建议将不胜感激。
【问题讨论】:
标签: aop silverlight-5.0 loose-coupling