Windows Phone 7에서는 이동 한 페이지에서 뒤로가 눌러 졌는지 알 수있는 방법이 있습니까? 나는 현재 페이지에서 가로 챌 수 있지만 내가 탐색 할 페이지에서 알 필요가 있다는 것을 안다. 즉, 2 페이지가 page1 및 page2라고 말하면, page2에서 뒤로 버튼이 눌러집니다. page1에서 뒤로 버튼이 눌려 졌는지 여부를 알아야합니다. page1에있는 뒤로 버튼 누르기에서 몇 가지 물건을 실행해야합니다.WP7은 "navigated to"페이지에서 뒤로 키를 눌렀을 때를 알고 있습니다.
답변
이것은 일종의 해킹이지만 다음을 수행 할 수 있습니다. 모든 페이지에서 OnBackkeyPress
이벤트를 무시하십시오. 모든 페이지에 대한 OnNavigatedTo
이벤트 처리기에서, 다음
PhoneApplicationService.Current.State["isbacknav"] = true;
State
사전에 그 항목이 포함되어 있는지 여부를 확인 : 이벤트 처리기 내에서 다음 코드를 추가합니다.
bool isbacknav = false;
if(PhoneApplicationService.Current.State.ContainsKey("isbacknav")) {
isbacknav = (bool)PhoneApplicationService.Current.State["isbacknav"];
PhoneApplicationService.Current.State["isbacknav"] = false;
// or
// PhoneApplicationService.Current.State.Remove("isbacknav");
}
각 페이지에서 OnBackKeyPress
이벤트를 무시하고 뒤로 키가 눌리는 것을 감지 할 수 있습니다.
두 번째 페이지에서 전역 플래그를 설정하거나 첫 번째 페이지로 메시지를 보낼 수 있습니다.
페이지에서 열거 나 표시되었던 마지막 페이지가 무엇인지 알 수있는 방법이 없습니다. 너 스스로 너에게 줄거야.
슬프게도 나는 이렇게 할 방법이 없다고 생각합니다. 당신이 다음 OnNavigatedTo에 대해 이야기 얻을 이벤트 인수 당신에게 그 정보를 제공하지 않는 경우, http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigatingcanceleventargs.navigationmode(v=vs.95) 그러나
- 당신이 OnNavigatingFrom에 대해 말했다받을
는다음 이벤트 인수는 NavigationMode이 포함되어 있습니다.
가장 쉬운 해결 방법은 NavigationService.Navigating
에 대한 처리기를 App 클래스에 추가하는 것일 수 있습니다. 거기에 NavigationMode를 캐시 할 수 있습니다. 그러나 코드가 어떤 순서로 도착하는지에 대한 문제가있을 수 있으므로 철저하게 테스트하십시오. 사용자가 전화 홈페이지 또는 다른 앱에서 페이지로 다시 이동할 때이 코드가 올바르게 호출되는지 여부는 문제가 될 수 있습니다.
NavigationService.Navigating
에 대한 좋은 설명이 http://wildermuth.com/2010/10/11/Architecting_WP7_-_Part_1_of_10_Navigation_Framework
정확히 같은 문제가 있습니다. 대답을 볼 수 있습니다 here
데이터를 이미로드 한 페이지로 다시 이동하는 경우 데이터를 다시로드하지 않으려했습니다. 결국 데이터를 이미로드했는지 확인하기 위해 플래그를 사용해야했습니다.
언제든지 App 클래스 (App.xaml.cs)에 bool 변수를 정의 할 수 있습니다. 가 PAGE1 Page1.xaml에서 앱 클래스
public bool backVariable=false;
에 다음과 같은 방법
에 의해 모든 페이지에서 액세스 할 수 있습니다.CS 세계적으로 또는 방법
App thisApp=Application.Current as App;
의는 다음 U이 실제로 허용 대답보다 더
thisApp.backVariable
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.NavigationMode == System.Windows.Navigation.NavigationMode.Back)
...
}
- 1. 앱내 구매 중 사용자가 취소 버튼을 눌렀을 때를 알고 있음
- 2. 코코아에서 전원 키를 눌렀을 때를 감지하는 방법은 무엇입니까?
- 3. Silverlight에서 물음표 키를 눌렀을 때를 어떻게 알 수 있습니까?
- 4. WP7은 : webclient.OpenReadAsync
- 5. 뒤로 버튼을 눌렀을 때 앱이 다운 됨
- 6. Shift 키를 눌렀을 때 감지
- 7. 뒤로 버튼을 눌렀을 때 페이지 건너 뛰기
- 8. Android에서 뒤로 키를 누를 때 메소드가 실행되었습니다.
- 9. 뒤로 버튼을 눌렀을 때 이벤트를 잡는 방법?
- 10. F5 키를 눌렀을 때 감지하고 새로 고침
- 11. 자바 스크립트 : 객체가 garbaged 될 때를 알고
- 12. "Before"Navigated 이벤트가 있습니까?
- 13. WP7은 MouseLeftButtonDown이있는 이미지를 터치합니다.
- 14. jsf 키를 눌렀을 때의 문제 입력
- 15. Asp.NET의 UpdatePanel Enter 키를 눌렀을 때
- 16. "enter 키를 눌렀을 때"쓰는 방법은 무엇입니까?
- 17. 홈 키를 눌렀을 때의 활동 문제
- 18. 이스케이프 키를 눌렀을 때 이미지를 닫는 방법?
- 19. Tab 키를 눌렀을 때 winform을 잡는 방법
- 20. mfc 응용 프로그램에서 키보드의 키를 눌렀을 때
- 21. 특정 키를 눌렀을 때 창을 닫습니다.
- 22. 인터페이스가 구현자를 알고 있습니다.
- 23. Android에서 뒤로 버튼/뒤로 키를 실행하는 동작은 무엇입니까?
- 24. 키보드의 키를 눌렀을 때 실제로 나타나는 동작 경로는 무엇입니까?
- 25. 내비게이션 바에서 뒤로 버튼을 눌렀을 때 RootViewController의 내용을 새로 고침
- 26. 뒤로 버튼을 눌렀을 때 레이아웃을 이전 레이아웃으로 설정하려면 어떻게합니까?
- 27. 뒤로 버튼을 눌렀을 때 두 번 표시된 대화 상자
- 28. 내비게이션 컨트롤러의 뒤로 버튼을 눌렀을 때 테이블 뷰가 충돌 했습니까?
- 29. PHP : 뒤로 버튼을 눌렀을 때 웹 응용 프로그램의 세션을 만료해야합니다.
- 30. wpf가 템플릿이 변경된시기를 알고 있습니다.
사용하여 부울 변수에 액세스 할 수 있습니다. Windows Phone 7.0에서이 기능을 사용할 수 있습니까? 아니면 7.1/Mango에서 도입 되었습니까? –
답을 쉽게 읽을 수 있도록 코드 블록에 답을 넣을 수도 있습니다. 하지만 편집 할 수는 없습니다. –
이 NavigationMode는 NavigationService.GoBack()이 호출 될 때도 true입니다. 하드웨어 프레스 만 원하면 대답을 사용하십시오. – ShawnFeatherly