c# - 如何返回上一页,并保留上一页内容 WPF
问题描述
如何返回上一页,并保留上一页内容?
我找到了这个,但是他们使用微软的丑陋默认导航栏,因此我想构建自己设计的导航栏。
我怎样才能做到这一点?我的意思是我想从 page1 导航到 page2,但是当我从 page2 返回到 page1 时,我想返回同一个 page1 而不是它的新实例。
现在我正在使用这个(坏的)方法:
void PreviousButton(object sender , RoutedEventArgs e)
{
Page2 p2 = new Page2();
NavigationService.Navigate(p2);
}
解决方案
如果您不想要框架的 ui,则不要使用页面,也不要使用框架作为主机。
我从未见过商业团队在 wpf 中使用页面。
相反,使用内容控件来托管您的内容。
用户控件而不是 Pages。
当您实例化一个新的 UserControl 时,您可以将它添加到 List 并保留对该实例的引用。保持当前索引。导航“后退”将使用前一个索引视图,转发下一个。
通常这将是视图模型而不是任何 UI 对象,并且您会将每个视图模型数据模板化到一个视图中(将视图模型作为 datacontext )。保留对上述视图模型的引用。这种视图模型第一个导航对于子视图相当常见。
几乎所有的商业团队都使用 MVVM。
推荐阅读
- android - 重置 GDPR/同意对话框(撤销同意后选择重新加入)
- python - Python Pandas Dataframe:每个人最近第二天的值
- javascript - 如何检查道具中的元素是否匹配条件?
- python - 使用scrapy下载内容并保存到列表中
- latex - Doxygen LaTeX 输出段落缩进
- symfony - 我在部署到生产后清除了缓存,但也丢失了我的应用程序缓存。如何在看到新的 symfony 代码更新时排除我的池?
- php - 可以使用 PHP 睡眠功能来减轻 bot 流量吗?
- java - Hibernate & Spring - org.hibernate.PropertyAccessException:无法通过反射设置字段值 [1] 值
- javascript - 从字符串中分离整数和小数
- node.js - 查找属于(父)类别的英语单词含义的算法