【发布时间】:2014-07-01 09:19:09
【问题描述】:
目前,我正在使用 WPF。我有两个窗口,即 window1 和 window2。 window1 有一个导航到 window2 的按钮; window2 还有一个返回 window1 的按钮。 window2 有许多控件和用户控件。情况是每当我将window1导航到window2时,由于某些原因,我必须创建window2的新对象。我知道单例模式,但不能在这里应用。
现在,在 window2 的卸载事件中,我将 window2 的对象保存在静态类中(我将“this”保存到静态类)。当用户再次在此处导航时,我想加载保存的对象而不是构造新对象。
是否有任何方法可以在要构造的当前对象中加载保存的对象? I-e 在构造函数或加载的某个地方我可以加载保存的对象?
提前致谢
【问题讨论】:
-
可以将
Window2的实例保留为Window1的属性。但是,如果问题是Window2加载缓慢,这不是一个好的解决方案。尝试找出导致加载时间缓慢的原因并修复它 -
实际上我必须在 window2 的对象 I-e 中加载保存的对象(即 window2 对象),当用户来这里两次而不是构建新的对象时,我想在刚开始的新 window2 对象中加载前一个对象建设
-
我知道这对您没有帮助,但请不要这样做 - 这对我来说是糟糕的设计。你有状态所以传递它而不是一起破解一些 UI 意大利面条
-
同样,保存实例是一种解决方案,但它是一个糟糕的解决方案。相反,您应该尝试找出导致加载缓慢的原因并直接解决(通过使用线程或性能调整)
-
实际上我正在使用 devexpress Metro 风格导航(他们没有文档,因为他们说它的扩展名),我只注册我的视图(我调用 window2)然后每次我按下转到 window2 它会创建新对象。这就是为什么我想在 window2 的构造函数再次调用时加载保存的对象