2010-11-10 7 views
23

W Phone 7 aplikacji Silverlight w systemie Windows wzywam nową stronę przy użyciuWP7: Przekaż parametr do nowej strony?

NavigationService.Navigate(new Uri("/View/SecondPage.xaml", UriKind.Relative)); 

Teraz chcę przekazać parametry do nowej strony. Rozumiem prosty parametr mogą być przekazywane za pomocą:

NavigationService.Navigate(new Uri("/View/TilgungsratePage.xaml?id=4711", UriKind.Relative)); 

i przeczytać w nowej strony przy użyciu

protected override void OnNavigatedTo(Microsoft.Phone.Navigation.PhoneNavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    String id = NavigationContext.QueryString["id"]; 
} 

przypadku prostych parametrów to jest OK, ale jak mam przekazać listę?
Skomplikowane obiekty?
Wszystko oprócz prostych wartości?

+0

Spójrz na tym stanowisku, a także: [ Mistrz WP7 - nawigacja szczegółowa ze wzorem repozytorium] (http://windowsphonegeek.com/articles/WP7-Master---Detail-Navigation-with-Repository-Pattern) –

+1

Sprawdź ostatnią metodę na tym łączu: http: // www.c-sharpcorner.com/UploadFile/deepak.sharma00/different-ways-of-passing-values-between-indindo ws-phone-7-pag/ –

+0

Spójrz na to pytanie http://stackoverflow.com/questions/12444816/how-to-pass-values-parameters-between-xaml-pages –

Odpowiedz

21

w książce "Programming Windows Phone 7" (rozdział 6 sekcja 3 "Udostępnianie danych między Pages") Charles Petzold poleca pro wartości w klasie App (pochodzące z Application). Każda strona ma do niej dostęp poprzez Application.Current. Interesujący jest również słownik PhoneApplicationService.Current.State. Przydaje się do tombstoningu. Cały rozdział może być ciekawy do czytania.

+0

I nie chcesz mieć globalny stan są inne metody http://stackoverflow.com/questions/12444816/how-to-pass-values-parameters-between-xaml-pages –

0

zobacz, jak zaimplementowałem nawigację w ramach PhoneCore Framework: A framework for building of WP7 application. Wkrótce zbudowałem moją nawigację na bazie nawigacji WP7. Wykorzystuje on niestandardowe mapowanie stron i pozwala przekazywać parametry niestandardowe, aby automatycznie wyświetlić model.

-1

Powinieneś zapisać obiekt w IsolatedStorage.

Po prostu serializuj z biblioteką Json.net i zapisz ciąg w IsolatedStorage. Na następnej stronie pobierz ciąg z IsolatedStorage i przekonwertuj go z powrotem do wybranego obiektu za pomocą biblioteki json.net!

+0

Myślę, że to jest przesada, aby przejść między widokami.Znacznie lepiej umieścić dane w obiekcie aplikacji. – Nathan

0

używać zmiennych globalnych, zrobić nową klasę dla GlobalVariables:

public static class GlobalVariables 
{ 
    public static string my_string = ""; 
    public static int my_int = -1; 
} 

Następnie można uzyskać dostęp do globalnej klasy zmiennych dla różnych stron:

GlobalVariables.variable_name; 
Powiązane problemy