繁体   English   中英

WP7在页面之间传递多个数据

[英]WP7 passing multiple pieces of data between pages

在我的应用程序中,我正在构建自己的媒体播放器 当用户选择要播放的歌曲时,希望能够将链接传递给样本媒体以及与其关联的元数据(艺术家,曲目,专辑艺术等)。我所坚持的部分是如何将所有数据并将其传递到媒体播放器页面。 这是我到目前为止所拥有的。

确定选择了哪个项目并将数据添加到查询字符串。

更新

    public void musicSampleSelectedHandler(object sender, RoutedEventArgs e)
    {
        Track selected = (sender as Image).DataContext as Track;
        ListBoxItem pressedItem = this.listReleaseMain.ItemContainerGenerator.ContainerFromItem(selected) as ListBoxItem;
        if (pressedItem != null)
        {
            string _rT = selected.title;
            string _rN = selected.release.name;
            //string _rA = selected.artists; ????
            string _rI = selected.images.large.url;
            string _rS = selected.sampleUrl;

            this.NavigationService.Navigate(new Uri("/Pages/MediaPage.xaml?releaseName=" + _rN + "&releaseTrack=" + _rT + "&releaseImage=" + _rI
                + "&releaseSample=" + _rS, UriKind.Relative));
        }
    }

OnNavigatedTo方法从查询字符串中提取数据

        protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);

        string releaseName = String.Empty;
        string releaseImg = String.Empty;
        string releaseUrl = String.Empty;

        if (NavigationContext.QueryString.TryGetValue("releaseUrl", out releaseUrl))
        {
            sampleMedia.Source = new Uri(releaseUrl, UriKind.Absolute);
        }
    }

我不确定我是否可以使用查询sting将多个片段传递给媒体播放器,或者我是否要做一些不同的事情来将数据传递到另一个页面。 我的所有数据都来自使用webclient的网络。 谢谢您的帮助。

QueryString只是通过Uri传入的参数的字典。 Uri使用传入由&分隔的参数的标准语法。 所以在你的例子中,如果你有类似的东西:

this.NavigationService.Navigate(new Uri("/Pages/MediaPage.xaml?releaseUrl=" + releaseUrl + "&releaseImg=" + releaseImg , UriKind.Relative)); 

然后你可以使用类似的东西解析它:

if (NavigationContext.QueryString.TryGetValue("releaseUrl", out releaseUrl))   
{   
    sampleMedia.Source = new Uri(releaseUrl, UriKind.Absolute);   
} 

if (NavigationContext.QueryString.TryGetValue("releaseImg", out releaseImg))   
{   
    // do something with releaseImg
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM