2014-07-25 24 views
10

Passing data from page to page ile aynı soruyu, ancak yalnızca Windows Phone 8.1 (Windows Phone 7'ye karşı) için var. İşte soru:Windows Phone için Sayfadan Sayfaya Geçme 8.1

Sayfadan sayfaya nasıl veri iletileceğiyle ilgili en iyi uygulamayı arıyorum.

A Sayfasında A Page 4 Sayfa B'de bir düğme var. B Kullanıcının bilgi girmesini sağlayan 6 metin kutusu var.

yapı: Kullanıcı tamamlandığında, Sayfa A'dan onları geri getiren bir butona tıklama

ben için öneriler gördüm

Sayfa A'ya geri bu verileri geçmek istiyorum XML belgeleri ve İzole Depolama kaydetmek için özellikleri içinde bilgi depolamak için App sınıfını kullanın Bir sorgu dizesi gibi en iyi uygulama için arıyorum. Microsoft'un önerdiği veya genel olarak en iyi yol olarak kabul edilen bir tane var mı?

Teşekkür

WP8.1 Runtime yılında

cevap

16

- hala çalışması gerekir Silverlight, the methods used in WP8.0için - Eğer choces çift vardır:

  • birinci ve muhtemelen en kolay yolu Navigate with parameter kullanmaktır -

    // let's assume that you have a simple class: 
    public class PassedData 
    { 
        public string Name { get; set; } 
        public int Value { get; set; } 
    } 
    
    // then you navigate like this: 
    Frame.Navigate(typeof(Page1), new PassedData { Name = "my name", Value = 10 }); 
    
    // and in target Page you retrive the information: 
    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
        PassedData data = e.Parameter as PassedData; 
    } 
    
  • 0123: bir seri hale türüdür eğer dize dönüştürmek gerekmez - bu durumda düşünce LocalSettings, YerelDepolama, LocalCache: Eğer verilerinizi kaydedebilirsiniz söylediğim gibi
  • Eğer

  • nihayet App birlikte veri aktarmak için bazı statik nesneler kullanabilirsiniz ayrıca XAML, Json veya başkalarına serileştirmeniz gerekecektir.

Ayrıca, uygulamayı askıya alma/sürdürme işlemlerini de gerçekleştirmeniz gerektiğini unutmayın; böylece, uygulama askıya alındığında ve devam ettiğinde yüklenirken verilerinizi kaydetmeye uygun olur. Uygulama devam ederken OnNavigatedTo'un çağrılmadığını hatırlamalısınız. Yukarıdaki normal seyrüsefer (ileri) ile ilgili idi. Geçerli Sayfasından kamu değişkenler/özelliklerine erişebilmek

  • , bir önceki Sayfa bir işleyici geçmek
  • kullanımı: Daha önceki Page bazı verileri doldurmak istiyorsanız, o zaman birkaç seçenek var statik değişken/özellik - belki bir tekil
  • tekrar dosyaları kullanın/tekrar ilk iki yöntem uygulama askıya sonra çökebilir bir dezavantajı vardır

Not ayarları.Dosyalara kaydetme burada daha iyi olabilir, düşünce biraz daha çalışmaya ve uygun işleme ihtiyaç duyar. Başka bir sayfanın

var passedData = e.Parameter as PassedData; 

emailtxt.Text = passedData.email; 
geçen değeri yakalamak -O zaman değerini

Frame.Navigate(typeof(Frame2), new PassedData { email = emailtxt.Text }); 

asılı sayfalarında gezinebilirsiniz -O zaman

+0

Eğer birden fazla parametre aktarmak istiyorsak o zaman hangi yaklaşım daha iyi? –

+0

@KinjanBhavsar Parametrelerinizin türlerine, ne kadar önemli olduklarına ve diğer uygulamalara bağlıdır. – Romasz

+0

Sınıfın bir nesnesini ve başka bir sınıftan gelen bir dize paramaterini iletmek istiyorum. –

0

bir sınıf

public class PassedData 
{ 
    public string email { get; set; } 
} 

oluştur -Öncelikle

İlgili konular