2016-04-08 6 views
0

Ich versuche, eine App für Windows Phone 8.1 zu entwickeln. Ich bin absoluter Anfänger in App-Entwicklung. Im Moment ist meine Frage - wie kann ich die Informationen auf einer anderen Seite in einem Textfeld oder einer anderen Art anzeigen. Es ist eine Shopping-App und ich versuche, den Namen des Artikels, der eine Schaltfläche ist, auf der Warenkorb-Seite zu sehen, wenn der Warenkorb angeklickt wird. Code ist unten. Das heißt, Artikel aus Menu.xaml wird in Basket.xaml angezeigt, wenn die Schaltfläche in Menu.xaml ausgewählt ist.Wie Informationen für Windows Phone 8.1 angezeigt werden

Basket.Xaml

protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     Menu.PassedData data = e.Parameter as Menu.PassedData; 

    } 

So sagen zum Beispiel habe ich eine txt-Box in Basket.xaml, die den Artikel in Menu.xaml ausgewählt soll zeigen, wie kann ich das tun gehen?

Antwort

0

In der zweiten Seite (das Korb eins, wenn ich richtig verstanden habe), sollten Sie in der Lage sein, auf die übergebenen Daten zuzugreifen, ziemlich einfach:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    var passedData = e.Parameter as PassedData; //cast the object back to PassedData type. 
    someTextBlockOnBasket.Text = passedData.Name; 

} 
0

Wenn die Daten, die Sie übergeben möchten, vom primitiven Typ sind, können Sie wie Sie vorgehen. Wenn nicht primitive Daten Sie können in LocalSettings speichern. Um dies zu tun, müssen Sie Ihre Klasse zu Json serialisiert, xml

LocalSettings.Values[key]=Json Converter.Serialize(object) 

Aber Local hat einige Größenbeschränkungen, wenn Daten übergeben werden sehr groß ist, können Sie serialisieren und speichern in eine Datei und verwenden, die auf der nächsten Seite

Hier wir Code zu serialisieren und deserialisieren

MemoryStream sessionData = new MemoryStream(); 
DataContractSerializer serializer = new 
      DataContractSerializer(typeof(Menu.PassedData; 
)); 
serializer.WriteObject(sessionData, data); 


StorageFile file = await ApplicationData.Current.LocalFolder 
         .CreateFileAsync(sFileName); 
using (Stream fileStream = await file.OpenStreamForWriteAsync()) 
{ 
    sessionData.Seek(0, SeekOrigin.Begin); 
    await sessionData.CopyToAsync(fileStream); 
    await fileStream.FlushAsync(); 
} 
Deserialize back this way - 


StorageFile file = await ApplicationData.Current.LocalFolder. 
          GetFileAsync(sFileName); 
using (IInputStream inStream = await file.OpenSequentialReadAsync()) 
{ 
    DataContractSerializer serializer = 
      new DataContractSerializer(typeof(Menu.PassedData; 
)); 
    var data = (Menu.PassedData; 
)serializer 
        .ReadObject(inStream.AsStreamForRead()); 
} 

Für weitere Informationen lesen Sie bitte diesen link

Verwandte Themen