2011-10-20 51 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

相關問題