2009-11-23 35 views
0

如果我有一個名爲VideoMedia(它包含一個標準的Uri視頻路徑)的自定義類,並且我有一個DataTemplate,我用它來創建一個視頻播放器控件。WPF DataTemplates和自定義類來處理事件

<DataTemplate DataType="{x:Type v:VideoMedia}"> 
    <MyLib:VideoPlayer/> 
</DataTemplate> 

的VideoPlayer類擴展用戶控件,只需控制視頻文件的回放)

如何添加一個事件處理程序到VideoMedia類,因此它可以包含一個排序TimeStarted屬性?我在運行時需要它,所以我可以告訴視頻是否在運行。

我正在存儲一個IDictionary<int, VideoMedia>集合,我每隔2秒迭代一次以判斷視頻是否正在播放。有沒有更好的方法來做到這一點?

回答

1

如果您的VideoPlayer usercontrol正確建立了IsPlaying依賴屬性。只要做一個綁定到VideoMedia.IsPlaying到VideoPlayer.IsPlaying,你很好去。

<MyLib:VideoPlayer IsPlayingDP="{Binding IsPlaying}" ... /> 
+0

你的意思是使用模板綁定? – Mark 2009-11-23 10:48:41

+0

剛更新了帖子,IsPlayingDP是你的用戶控件屬性,IsPlaying是你的Viewmodel屬性。 – 2009-11-23 16:06:08

+0

我得到:無法使用綁定檢索值,並且不存在有效的回退值;改爲使用默認值。 BindingExpression:路徑= IsPlaying模塊; DataItem ='VideoMedia'(HashCode = 51593576);目標元素是'VideoPlayer'(Name ='UserControl');目標屬性是'IsPlaying'(類型'布爾') – Mark 2009-11-23 21:44:00