更改窗口内容时的资源管理

4

首先,我不完全了解如何在窗口的多个“页面”之间导航。

例如,我有一个名为MainWindow的窗口。其中包含页眉和页脚。中间是一个包含内容的面板。 这个面板最初将包含内容A。点击A中的某些内容后,我想把A从视野中移除,并显示一个新的面板,其中包含内容B。但是,我希望B显示在同一个窗口中(即不隐藏窗口并打开一个新窗口)。隐藏/显示这些面板是否是正确的方法?

如果使用面板切换机制是正确的方法,那么我担心资源管理问题。如果我将面板A设置为不可见,将面板B设置为可见,那么我还会加载两个面板的资源吗?如果我需要在许多面板之间进行切换,我不想加载所有面板的内容,而只想加载活动的面板。 我该如何确保在这些不同的视图之间正确处理资源和内存?

如果我的关于在单个窗口中切换视图的想法完全错误,请告诉我。 谢谢。

2个回答

2

不要反复切换可见性,你应该使用contentControl并将其内容切换为不同的UserControls。

这样就没有对屏幕外的UserControl的引用,可以更好地处理内存问题。


1

一个替代方法是只使用单个ContentPresenter,并将您的各个“面板”放在其中,但一次仅显示一个。

与其翻转可见性,您可以使用数据绑定来更改ContentPresenter中绑定内容。这只会留下一个“视图”在原位,避免了需要加载“大量”的面板。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接