C# 选择listview项目时播放歌曲

C# 选择listview项目时播放歌曲,c#,windows-8,C#,Windows 8,我希望用户从列表视图中选择一首歌曲并播放它。我尝试了:listview。SelectedValuePath我得到一个错误:Url为空。我尝试了:listview.SelectedItem.ToString()我得到一个错误:无效的Url。 Listview项文本是文件路径。所以不是这样。 我的完整代码: FileOpenPicker picker = CreateFilePicker(audioExtensions); IReadOnlyList<StorageFile> files

我希望用户从列表视图中选择一首歌曲并播放它。我尝试了:
listview。SelectedValuePath
我得到一个错误:Url为空。我尝试了:
listview.SelectedItem.ToString()
我得到一个错误:无效的Url。 Listview项文本是文件路径。所以不是这样。 我的完整代码:

FileOpenPicker picker = CreateFilePicker(audioExtensions);
IReadOnlyList<StorageFile> files = await picker.PickMultipleFilesAsync();

if (files != null && files.Count > 0)
{
    playlist = new Playlist();

    foreach (StorageFile file in files)
    {
        playlist.Files.Add(file);

        StorageFile savedFile =
            await playlist.SaveAsAsync(KnownFolders.MusicLibrary,
                                       "Sample",
                                       NameCollisionOption.ReplaceExisting,
                                       PlaylistFormat.WindowsMedia);

        this.OutputStatus.Text = savedFile.Name + " was created and saved with "
                                 + playlist.Files.Count + " files."
                                 + Environment.NewLine + "At folder: "
                                 + savedFile.Path;

        listview.Items.Add(file.Path.ToString());
    }
}
else
{
    this.OutputStatus.Text = "No files picked.";
}
第一个错误
(无效Url错误)
修复方法是将ListViewItems添加到ListView中:

第二个错误
(无效源)
修复方法是从所选ListViewItem中获取
内容

能否提供listView SelectedItemChanged事件的代码?@robpstein private void listView_SelectionChanged(对象发送方,SelectionChangedEventArgs e){media.Source=new Uri(listView.SelectedValuePath);}@GrantWiney现在可以更新了。@AndrewGrinder MyListViewObject是ListViewItem吗?@AndrewGrinder SelectedValuePath的结果=Url为空…我又遇到一个错误-\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。url是有效的,因为我的listview显示与音乐文件完全相同的url。本地文件:C:\…尝试将
@
符号添加到任何路径字符串的开头。Like
media.Source=newURI(@listview.SelectedValuePath)
   private void listview_SelectionChanged(object sender, SelectionChangedEventArgs e)
   {
                media.Source = new Uri(listview.SelectedValuePath);
   }