我有兩個頁面,其中有類似的邏輯。加載頁面,點擊一些將顯示/隱藏其他按鈕的按鈕,繼續下一頁。當我點擊下一頁時,如果我點擊後退按鈕,我會返回上一頁。什麼決定NavigationCommands.BrowseBack是否調用頁面構造函數?
不同之處在於,當單擊後退按鈕時,一個頁面(FirstPage)將調用構造函數,該按鈕有一個調用來重置默認值。另一頁(SecondPage)沒有得到構造函數,我不知道爲什麼。
public FirstPage()
{
InitializeComponent();
DisplayStuff();
}
第一頁有KeepAlive
設置爲False
。
public SecondPage(object arg1, object arg2)
{
InitializeComponent();
DisplayStuff(arg1, arg2);
}
本頁面也有KeepAlive
設置爲False
。這兩個頁面不會從任何東西繼承,並且沒有任何東西會覆蓋任何屬性。我能看到的唯一區別是空的構造函數,所以我試着給SecondPage一個空的構造函數,但仍然沒有運氣。
我對WPF比較陌生(我每6個月工作一兩個小時),所以我錯過了什麼?
這是後面的按鈕,以防它是相關的。
<Button Command="{x:Static NavigationCommands.BrowseBack}" />
編輯:當我點擊後退按鈕時,SecondPage不保持其狀態。它只是加載一個空白頁面,因爲DisplayStuff
尚未被調用。
導航代碼:
NavigateTo(new SecondPage(arg1, arg2));
protected void NavigateTo(Page page)
{
NavigationService.Navigate(page);
}
它被緩存在客戶端上嗎? – 2011-04-12 20:35:17
請你能在這兩頁之間寫下導航代碼。 – Homam 2011-04-12 20:37:06
@Cos,不,我不這麼認爲。 @Homam,用代碼更新。導航方法非常簡單。 – Brandon 2011-04-12 20:41:25