如何设置MediaElement源

时间:2012-06-09 12:26:28

标签: c# wpf listbox mediaelement playlist

我正在用C#WPF制作音乐播放器。文件被添加到ListBox,作为MediaElement的播放列表。为了只在ListBox中显示没有路径和扩展名的文件名,我创建了一个Song类,它具有路径和标题的属性。

我无法弄清楚的是如何将MediaElements源设置为Song对象的path属性,这样我只需单击ListBox中的一个项目即可开始播放。

以下是我用于将文件添加到列表框的代码:

        if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            foreach (string file in ofd.FileNames)
            {
                Song songs = new Song(System.IO.Path.GetFileNameWithoutExtension(file), file);
                listBox.Items.Add(songs);                                                                           
            }  
        }

1 个答案:

答案 0 :(得分:0)

将路径存储在Song类中以及文件名中。然后,当您选择项目时,您可以立即使用该路径。您可以根据需要在Song类中拥有尽可能多的属性。只需使用DisplayMemberPath属性来控制显示的内容,使用SelectedValuePath属性来控制返回代码所需项目的哪个方面。在这种情况下,您可以将文件名用作DisplayMemberPath,将路径用作SelectedValuePath

您实际上不需要存储文件名,因为您可以通过转换器传递路径以提取显示的文件名。显然会有一个处理开销,存储文件名的额外内存不是真正的问题,但我认为值得一提。