2011-10-20 135 views
0

我在我的应用中加载页面,用户对其进行一些修改。通过按某个页面上的按钮,我想将页面重置为其初始形式。我试过NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));,但它不起作用,因为From和To页面是相同的。另外,我还想过在新的一页之间,但这听起来很糟糕。另外,如果我不必通过无理由导航到另一个页面来拧紧导航历史记录(即后退按钮),那将是最好的。那么任何解决方案的页面重置?谢谢。将页面重置为初始形式

+0

用户做了什么样的改变?你可以重新设置值(即从文本框中删除文本,将文本块重置为原始值,删除图像,删除列表等等...不应该太难。如果你有更复杂的用户界面(比如用户移动Grids/Drawing on screen)你仍然可以这样做: –

+0

这是最后的手段,我必须编写一个非常大的方法来重新排列东西 –

+0

我想你可以尝试删除Layout的内容,然后使用XAMLLoader重新加载UI ... http://social.msdn.microsoft.com/forums/en-US/wpf/thread/865c6b3d-9548-45fe-a680-9992e63fbbca –

回答

2

我找到了正确的答案。为了将页面重置为其初始格式,您必须执行此操作:

void buttonResetPage_Click(object sender, RoutedEventArgs e) 
{ 
    this._contentLoaded = false; 
    InitializeComponent(); 

    // other initializations found in your page constructor 
} 

它对我很有用。 :)

+1

谢谢,这有助于很多。 – domenukk

+0

这对我而言是一个错误 – JTIM

+0

我的答案发布于2011年。这个bug很可能是在过去3年的操作系统版本中修复/更改的。 –

1

我做到了,通过以下方式:

ContentFrame.Content = New {pagename} 

这台contentFrame,其中包含我的网页第1页,第2页等,该页面的一个全新的实例。然后,它会重新加载该页面上的所有内容,并重新从数据库中获取数据。这种方式对我有用。

+0

听起来不错,但是我不h大声申请再次测试这个问题,所以我不能标记你的答案。我能做的是upvote。 :) –

+0

ContentFrame不存在作为API,是否有项目中需要特殊的参考? – JTIM

相关问题