簡體   English   中英

wp7音樂播放器

[英]wp7 music player

我正在嘗試在wp中開發音樂播放器應用程序。 現在,我可以從MediaLibrary中檢索歌曲列表並將其添加到列表框中。

MediaLibrary lib = new MediaLibrary();
var SongName = (from m in lib.Songs select m.Name).ToList();
listBox1.ItemsSource = SongName;

該列表正在填充,我正在使用事件訪問ListBox項

listBox1_SelectionChanged 

我希望將所選項目轉換為Song類型,以便可以使用MediaPlayer類播放該項目。

正常的類型轉換,例如

Song x = (Song)listBox1.SelectedItem;

我該如何運作?

您正在選擇歌曲名稱(字符串)作為數據源類型。 如您所見,您不能僅通過顯式轉換字符串就將其轉換為Song類型(如果您確實想保留字符串類型,則可以在MediaLibrary執行搜索)。 另外,您可以將Song對象本身綁定到ListBox。

MediaLibrary lib = new MediaLibrary();
var SongName = lib.Songs.ToList();
listBox1.ItemsSource = SongName;

然后在您的事件處理程序中

Song x = listBox1.SelectedItem as Song;
if(x != null)
   MediaPlayer.Play(x);

如果您確實只想在ListBox使用string類型,則可以在SelectedChanged事件中執行類似的搜索。 (您必須將lib設為類級變量)

Song x = lib.Songs.Where(s => s.Name == listbox1.SelectedItem.ToString()).FirstOrDefault();

此方法的主要問題是,如果有兩個具有相同名稱的軌道,則僅返回第一個。 您需要一種區分它們的方法,但是其他屬性(例如Artist已從數據源中刪除(因為您僅使用了Song's Name屬性)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM