我正在使用网页和导航服务构建WPF应用 其中一个页面将对象作为构造函数
Sub New(ByVal o As Object)
' This call is required by the Windows Form Designer.
InitializeComponent()
....
所以,要导航到它我
Dim MyPage As New Page1(MyObject)
MyBase.NavigationService.Navigate(MyPage)
当我在页面中编辑某些内容时会出现问题,然后返回,转发到MyPage会出现以下错误:
Cannot create object of type 'Page1'. CreateInstance failed, which can be
caused by not having a public default constructor for 'Page1'.
我做错了什么?
答案 0 :(得分:6)
您需要告诉主机应用程序该页面应该保留在内存中,而不是每次导航时都“卸载”并在您返回时“重新加载”。结果非常简单:只需将KeepAlive属性添加到页面声明中:
<Page x:Class="..." KeepAlive="True">
有趣的是,MSDN文档说明了这一点:
实例化的页面 导航到仅使用代码(for 例如,调用Navigate),是 自动保持活力。
我没有发现情况如此,从你的问题来看,你似乎也没有找到它。