如果我有,我會在我導航到它ARG傳遞到一個頁面,但它是必要的 - 有沒有辦法知道),其頁面調用導航(不這樣做呢?的的OnNavigatedTo()事件不知道是誰導航呢?
0
A
回答
1
您可以使用GetNavigationState
,但它有一些不良的副作用(它導航離開當前頁面,字符串內部沒有關於它可能/可能不會改變的保證)。我認爲你最好通過它。
調用此方法將使用NavigationMode.Forward調用當前的 頁的Page.OnNavigatedFrom。 GetNavigationState通常是 應用被掛起時調用,所以當前頁是從 導航了。
注:
這些 方法中使用的序列化格式是僅供內部使用。你的應用不應該對它產生任何 依賴關係。此外,該格式支持序列 只爲基本類型,如字符串,字符,數字和GUID類型。
2
請叫|上一頁Application對象的靜態屬性。在每一頁的OnNavigatedFrom事件(或基類)設置|上一頁爲「本」(當前頁面)。在OnNavigatedTo事件中,您可以檢查該Application.PreviousPage屬性並使用它看你是否適合。這是訪問上一頁的最有效方法,因爲Windows Store應用程序框架中沒有Frame.BackStack屬性。
0
我遇到了這個問題,Caleb的回答非常有幫助。我只想發佈一些代碼來闡明我如何使用他的解決方案。我很有點(很!)新的C#,我敢肯定有更好的方法來做到這一點,但我想提供它作爲一個起點,以防別人正在尋找一個一點點細節。
我創建的應用程序的命名空間的全局變量來保持前一頁面狀態:
public static class global_vals{
static object _previousPage;
public static object previousPage
{
get
{
return _previousPage;
}
set
{
_previousPage = value;
}
}
}
對我的每一個頁面的OnNavigatedFrom方法看起來是這樣的:
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
global_vals.previousPage = this;
}
而且的OnNavigatedTo方法像這樣檢查全局變量:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (global_vals.previousPage.GetType().ToString() == "AppName.SomePage")
{
//do something
}
}
相關問題
- 1. WP MVVM導航OnNavigatedTO
- 2. 導航到另一頁OnNavigatedTo?
- 3. 有誰知道用於導航Pac-Man迷宮的算法嗎?
- 4. 這是誰的責任呢?
- 5. 如何知道誰是FirstResponder?
- 6. 有誰知道爲什麼我的網站導航鏈接不工作?
- 7. 知道Onclick導致的事件
- 8. 知道是誰鎖定的對象
- 9. 有誰知道kCCDirectorProjection2D是做什麼的?
- 10. 有誰知道TIdHTTP的緩存組件?
- 11. 有誰知道VS 2015的Accurev插件?
- 12. ZMQ REP,知道是誰發送請求
- 13. 如何知道是誰開始線程
- 14. oozie如何知道我是誰?
- 15. 如何知道.bashrc誰是發起者?
- 16. 有誰知道是什麼原因導致了這個錯誤?
- 17. 有沒有辦法知道誰是「setNeedsDisplay」的發件人?
- 18. 有誰知道這2個插件是如何調用的?
- 19. 有誰知道使用curl而不是fopen的PDF轉換器?
- 20. WMP EventDispatcher:如何知道誰發送了事件?
- 21. 如何知道誰在WPF中引發了路由事件?
- 22. 不知道爲什麼我的導航不對齊(css)
- 23. SQL NOT IN(不知道誰抽菸)
- 24. 有誰知道爲什麼要()是不是在這裏工作
- 25. 導航到相同的視圖。爲什麼加載和OnNavigatedTo事件不被調用?
- 26. 誰知道Sedgewick-Vitter算法?
- 27. 誰應該知道對方?
- 28. WinForms導航事件
- 29. DurandalJS導航事件
- 30. 導航器不知道在symfony2項目中的口音(é,èà....)