wp7 contentpresenter - 将内容设置为同一页面

时间:2011-01-20 18:12:39

标签: c# windows-phone-7 navigation contentpresenter

我使用带有ContentPresenter(名为PageContent)的页面(名为containerpage),并将其内容设置为页面PhoneApplicationPage eventhandler中的OnNavigatedTo()实例(contentpage)。我还有一个带有“显示表单”按钮的主页。当我点击该按钮时,程序导航到容器页面,该容器页面将内容提醒者的内容设置为内容页面。我的问题是:如果我点击“显示表单”,然后按后退按钮并再次单击“显示表单”,我会收到带文本的ArgumentException

  

“参数不正确”

在线

this.PageContent.Content = contentpage; 

在容器页面的OnNavigatedTo() eventhandler中。我想这是因为我已经将另一个ContentPresenter的内容设置到此内容页面(因为导航会创建一个新页面),但如果这是问题,我该如何从以前的ContentPresenter内容中取消分配我的内容页面?

2 个答案:

答案 0 :(得分:0)

正如decyclone所提到的,通过详细的代码,您的问题会更加清晰。也就是说,您可以在您的conatinerpage上实施OnNavigatedFrom()并将Content设置为null

如果应用在容器页面上进行逻辑删除,您可能需要考虑这种设计是如何保持的。

答案 1 :(得分:0)

说实话,我很惊讶将一个页面的Content属性设置为另一个页面的实例甚至可以工作!作为长期解决方案,我真的会反对这一点。如果第一页的内容基于某些条件是动态的,则改为使用不同的UserControl

如果在UserControl的调用之间ShowForm的数据不是持久的,那么您每次都可以创建一个新实例,然后就不会有重新父母问题。

如果您可以详细说明您的应用场景以及您想要实现的目标,那么我们可以提供更好的答案。