【问题标题】:WPF losing data in previous page when a new page is created in Navigation window在导航窗口中创建新页面时,WPF 在上一页中丢失数据
【发布时间】:2018-06-18 19:42:48
【问题描述】:

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

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

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

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

现在,当我返回上一页时,我会丢失列表框中的项目以及网格内这两个文本框中的文本。组合框和文本框中的文本保持选中/键入状态。如何保持页面中的数据原样?

谢谢

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 实际上我将导航窗口的来源绑定到页面。因此,仅该页面就丢失了数据。当我在窗口内使用框架并在该框架内创建页面时,我没有看到保留数据的任何问题。 msdn.microsoft.com/en-us/library/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多