如何显示 Windows Phone 8.1 传递的信息

How to display passed information for Windows Phone 8.1

我正在尝试为 windows phone 8.1 开发应用程序。我是应用程序开发的完全初学者。现在我的问题是 - 如何显示在文本框或某种形式的另一个页面中传递的信息。它是一个购物应用程序,我正在尝试获取作为按钮的商品名称,单击购物篮时会出现在“购物篮”页面中。代码如下。 So i.e. Item from Menu.xaml show up in Basket.xaml when button in Menu.xaml is selected.

Basket.Xaml

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

    }

例如,我在 Basket.xaml 中有一个 txt 框,旨在显示在 Menu.xaml 中选择的项目,我该怎么做呢?

如果你想传递的数据是原始类型,你可以像你一样传递。 如果不是原始数据 您可以存储在 LocalSettings 中。为此,您必须将 class 序列化为 Json、xml

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

但 LocalSettings 有一些大小限制,如果要传递的数据非常大,您可以序列化并存储到文件中,并在下一页中使用它

这里是序列化和反序列化的代码

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());
}

更多信息请参考此link

在第二页(篮子页,如果我没理解错的话),你应该可以访问传递的数据,非常简单:

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

}