2012-03-17 85 views
1

我是WPF的新手。在我的應用程序中,我在一個網格列中顯示視頻節目列表(gridTitle),並在另一列中添加一個包含media元素(在usercontrol內)的網格(gridVideo)並播放視頻在gridTitle上選擇。如用戶從不同標題gridTitle,我刪除媒體元素(用戶控件)如下從網格中正確刪除mediaelement

if(gridVideo.Children.Count > 0) 
{ 
    MediaControl temp = null; 
    foreach (UIElement element in gridVideo.Children) 
    { 
     if (element.GetType() == typeof(MediaControl)) 
      temp = (MediaControl)element;  
    } 

    if(temp!=null) 
     gridVideo.Children.Remove(temp); 

    // gridMedia.Children.RemoveAt(0); 
} 

上述方法除去其中包含的媒體元素的用戶控制。在這裏我想問一下是否有任何需要停止/關閉正在播放的當前視頻,或者它將由WPF自動處理。我主要關心的是媒體元素是否不在後臺下載緩衝區中的數據?

請建議。

回答

1

是否有必要用MediaElement替換該控件?您可以根據所選標題重置MediaElement的Source屬性。這可以使用數據綁定完成:顯示的標題可以是包含標題(用於在列表中顯示)和Uri(設置MediaElement.Source屬性)的類的實例。然後MediaElement.Source綁定到項目容器的SelectedItem.Uri

+0

有一個附加到視頻的信息列表。所以我創建了一個包含媒體元素和其他控件的用戶控件。所以媒體元素顯示視頻和其他控件顯示標題,描述,評級,分辨率等相關信息,並有100 +視頻,每個包含此信息。所以當用戶點擊任何項目,然後我刪除以前的用戶控制,並添加新的用戶控制一個網格 – Rupesh 2012-03-21 16:53:13

+0

所有的信息可能是數據綁定,仍然沒有必要更換用戶控制本身。事件是否必須綁定到不同的類。只需將mediaelement放置在該用戶控件中,並將其與顯示數據所需的其他元素一起放置即可。將選定的實例傳遞給用戶控件的DataContext並將所有內容綁定到那裏 – EvAlex 2012-03-22 05:30:19