2011-10-26 22 views
9

qual è la procedura migliore per passare valori tra pagine in WPF?Come passare valori tra due pagine in WPF

grazie

+0

Eseguo alcuni metodi diversi per passare i parametri in [questa risposta] (http://stackoverflow.com/a/12444817/200442). Passa sopra usando parametri di stringa di query, argomenti del costruttore e pochi altri. –

+1

possibile duplicato di [Come passare valori (parametri) tra le pagine XAML?] (Http://stackoverflow.com/questions/12444816/how-to-pass-values-parameters-between-xaml-pages) –

risposta

8

Il punto di riferimento fisso è l'oggetto Application. È possibile memorizzare roba in Properties:

string myText = (string)Application.Current.Properties["test"]; 

Oppure è possibile aggiungere qualsiasi tipo di dati alla classe App derivata.

+9

questo approccio rischia di far diventare il tuo oggetto App un oggetto divino. – Joe

5

probabilmente attraverso il modello in un MVVM architecture.

+0

Ma dove fare immagazzini il modello? È una buona idea, ma sposta semplicemente il problema. –

+0

@Henk, una breve risposta ad una breve domanda. Ma progettare un'applicazione MVVM è un argomento importante, il link gentilmente fornito da Klaus nella mia risposta è un buon punto di partenza. – Joe

1

stesso di Windows Form:

non basta usare le variabili globali o controlli di pagina l'accesso da un'altra pagina. se hai due pagine che devono condividere lo stesso oggetto, ad es. Student, avere un metodo come SetStudent(Student student) nella pagina o utilizzare una proprietà in modo che una pagina possa passare l'oggetto Studente che utilizza tale metodo. Puoi anche avere il Get, naturalmente, se necessario.

4

Esempio nome di variabile = Nome_Dip

dichiarare la variabile in App.xaml cioè

public string DeptName { get; set; }

assegnare il valore nella tua pagina-1

(App.Current as App).DeptName = "test"; 

quindi chiamare il valore nella tua pagina-2

string selected_dept = (App.Current as App).DeptName; 
Problemi correlati