首先,我并不完全了解如何在窗口的多个“页面”之间导航。
例如,我有一个名为MainWindow的窗口。在这个内部,我有一个页眉和一个页脚。中间是一个包含内容的面板。 此面板最初将包含内容A.单击A中的内容后,我想从视图中删除A并显示包含内容B的新面板。但是,我希望B显示在同一窗口中(即,不隐藏窗口和开一个新的)。隐藏/显示这些面板的正确方法是什么?
如果使用面板切换机制是正确的方法,那么我担心资源管理。如果我将面板A设置为不可见,并且面板B可见,我仍然会从两个面板中加载资源吗?如果我有大量的面板要切换,我不想为所有这些面板加载内容,而是加载活动内容。 我如何确保在这些不同的观点之间正确处理资源和记忆?
如果我对如何在一个窗口内切换视图有完全错误的想法,请告诉我。 感谢。
答案 0 :(得分:2)
不应该关闭和打开可见性,而是应该放置一个contentControl并将其内容切换到不同的UserControl。
这样就没有对屏幕外UserControl的引用,你可以更好地处理内存问题。
答案 1 :(得分:1)
另一种方法是只使用一个ContentPresenter,并将您的个人“面板”放在那里,但一次只能放一个。
您可以使用数据绑定来更改ContentPresenter中的绑定内容,而不是忽略可见性。这样一次只能留下一个“视图”,防止加载“大量”面板。