我使用带有ContentPresenter
(名为PageContent)的页面(名为containerpage),并将其内容设置为页面PhoneApplicationPage
eventhandler中的OnNavigatedTo()
实例(contentpage)。我还有一个带有“显示表单”按钮的主页。当我点击该按钮时,程序导航到容器页面,该容器页面将内容提醒者的内容设置为内容页面。我的问题是:如果我点击“显示表单”,然后按后退按钮并再次单击“显示表单”,我会收到带文本的ArgumentException
“参数不正确”
在线
this.PageContent.Content = contentpage;
在容器页面的OnNavigatedTo()
eventhandler中。我想这是因为我已经将另一个ContentPresenter的内容设置到此内容页面(因为导航会创建一个新页面),但如果这是问题,我该如何从以前的ContentPresenter内容中取消分配我的内容页面?
答案 0 :(得分:0)
正如decyclone所提到的,通过详细的代码,您的问题会更加清晰。也就是说,您可以在您的conatinerpage上实施OnNavigatedFrom()
并将Content
设置为null
。
如果应用在容器页面上进行逻辑删除,您可能需要考虑这种设计是如何保持的。
答案 1 :(得分:0)
说实话,我很惊讶将一个页面的Content
属性设置为另一个页面的实例甚至可以工作!作为长期解决方案,我真的会反对这一点。如果第一页的内容基于某些条件是动态的,则改为使用不同的UserControl
。
如果在UserControl
的调用之间ShowForm
的数据不是持久的,那么您每次都可以创建一个新实例,然后就不会有重新父母问题。
如果您可以详细说明您的应用场景以及您想要实现的目标,那么我们可以提供更好的答案。