在导航之后是否有可能保留页面内容。例如,我有一个带框架和几个按钮的窗口,每个按钮都在某个页面上导航。
frame.Navigate(new Page1()); //every button for different page
现在,例如,一个页面有一些文本块和按钮。如果单击文本块的按钮文本更改。当我转到其他页面并返回该页面时,textblock.Text将不会保存,它将恢复为默认值?如何保留它?
我知道在wp 8.1中你可以使用构造函数中的这行代码来完成它:
this.NavigationCacheMode = NavigationCacheMode.Required;
但是,我无法在WPF中找到相同的内容。
答案 0 :(得分:1)
背后的想法非常简单。由于导航到页面时,数据未存储在页面中,因此正在创建页面的新实例。
您可以通过维护页面的静态实例来实现此目的。 即页面仅在第一次运行应用程序时创建。下次加载页面时,将保持状态。
答案 1 :(得分:0)
您可以使用Frame.Navigate()
的重载版本:
public bool Navigate(
object content,
object extraData
)
在extraData
中,您可以将参数传递给要导航到的页面,通常是一个字符串。并且您在此字符串中放置的信息可以由加载的页面使用,以使用所需的数据初始化自己。
答案 2 :(得分:0)
您可以在每个要在后台堆栈中缓存的页面中使用KeepAlive = true;
属性。