0

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

我想不通的是如何将 MediaElements 源设置为Song对象的路径属性,这样我只需单击 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);                                                                           
            }  
        }
4

1 回答 1

0

将路径存储在您的Song类中以及文件名中。然后,当您选择该项目时,您可以立即使用该路径。您可以在Song类上拥有任意数量的属性。只需使用该DisplayMemberPath属性来控制要显示的内容,并使用该SelectedValuePath属性来控制您需要将项目的哪些方面返回给代码。在这种情况下,您可以将文件名用作DisplayMemberPath,将路径用作SelectedValuePath.

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

于 2012-06-09T12:38:19.067 回答