Gdy strona jest nawigowana w silverlight, możesz zastąpić tę metodę.Jak wykrywać przycisk Wstecz lub Nawigacja do przodu w aplikacji nawigacji silverlight
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
}
NavigationEventArgs
ma NavigationMode
wyliczanie który jest zdefiniowany jako
public enum NavigationMode
{
New = 0,
Back = 1,
Forward = 2,
Refresh = 3,
}
Ale nazywając e.NavigationMode
zawsze rzuca NotImplementedException
Czy istnieje sposób w Silverlight do wykrywania strony jest poruszać się z powodu użytkownik kliknął przycisk przewijania do przodu/do tyłu.
To, co próbuję osiągnąć, to stan, który można zachować, gdy użytkownik kliknie przycisk Wstecz.
Załóżmy na przykład, że masz stronę klienta, która pokazuje listę klientów w datagrid. Użytkownik może wybrać klienta i istnieje widok szczegółowy, który pokazuje wszystkie zamówienia dla tego klienta. Teraz w elemencie zamówienia możesz kliknąć link hiperłącza, który przeniesie Cię do historii wysyłki zamówienia, która jest osobną stroną. Kiedy użytkownik kliknie przycisk Wstecz, chcę wrócić do strony klientów i automatycznie wybrać klienta, którego przeglądał. Czy to w ogóle możliwe?
Próbowałem też z funkcji nawigacji fragment
NavigationService.Navigate(new Uri("#currentcustomerid="
+ customer.Id.ToString(), UriKind.Relative));
gdy zmienia wybór klienta, ale to dodaje zbyt wiele elementów do historii, gdy użytkownik kliknie różnych klientów na stronie klienta.
EDIT
Istnieje również metoda można zastąpić
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
}
która jest taka sama jak obsługa zdarzenia NavigationService.Navigating jak wskazano w odpowiedzi BugFinder. W tej metodzie zawsze zwraca New
kiedy uderzysz w przycisk powrotu lub do przodu. Jedyny czas, metoda ta zwraca Back
jest, kiedy jawnie wywołać NavigationService.GoBack()
Nawet po naciśnięciu przycisku Wstecz lub Dalej. ** NavigationMode ** to zawsze "NavigationMode.New" w tej metodzie. –