在导航窗口中创建新页面时,WPF会丢失上一页中的数据

时间:2010-10-20 16:14:24

标签: c# wpf

我有一个使用导航窗口的应用程序。页面是这样设计的。

<Page>
 <Grid>
   <ComboBox/> <TextBox/>
   <Grid> <TextBox/> </Grid>
   <Grid> <TextBox/> </Grid>
   <ListBox/>
 </Grid>
</Page>

现在当我点击“新”时,我创建了一个页面,

Page1 pg1 = new Page1();
this.NavigationService.Navigate(pg1);

现在,当我回到上一页时,我丢失了列表框中的项目以及网格中这两个文本框中的文本。组合框和文本框中的文本保持为选中/键入。如何保持页面中的数据不变?

由于

2 个答案:

答案 0 :(得分:2)

将元素的KeepAlive属性设置为“True”

答案 1 :(得分:1)

如果WPF不可见,它会卸载它的控件。我猜你的列表框和文本框中的项目没有绑定到任何东西,所以当重新加载控件时它们会被重置。

避免这种情况的最佳方法是将它们绑定到后面代码中的某些内容,以便它们维护数据。