我正在C#和Silverlight 5中工作,我試圖顯示一個或多個音頻和/或視頻文件作爲字節數組從數據庫表中檢索。我決定最好的方式來獲得這些字節數組到一個可用的格式是建立在我的視圖模型是獲取服務調用過程中填充一個ObservableCollection名單:如何在Silverlight 5中向StackPanel添加MediaElements的動態列表?
mediaFiles = new ObservableCollection<MediaElement>();
foreach (FileUpload fu in FileUploadMediaTable)
{
using (MemoryStream ms = new MemoryStream(fu.bytes, 0, fu.bytes.Length))
{
MediaElement me = new MediaElement();
me.SetSource(ms);
mediaFiles.Add(me);
}
}
現在,我唯一的問題是搞清楚如何添加這些媒體元素進入視圖。我正在考慮用自定義的DataTemplate創建一個新的ItemsControl,該自定義的DataTemplate定義了將MediaElement嵌入到StackPanel中的播放按鈕,但是如何將每個按鈕與特定的MediaElement關聯?
編輯:當然,我想我可以只創建字節陣列的列表,並添加一個MediaElement的對象到的DataTemplate並通過字節數組中與所定義的Bytes2ImageConverter源。當然,也許我可以跳過這一步,並將MediaElement的源代碼綁定到每個字節數組上創建的MemoryStream對象。我不確定最好的處理方式(或者甚至有可能)。