用于处理事件的WPF数据模板和自定义类

用于处理事件的WPF数据模板和自定义类,wpf,events,datatemplate,Wpf,Events,Datatemplate,如果我有一个名为VideoMedia(包含视频路径的标准Uri)的自定义类,并且我有一个DataTemplate,我使用它来创建类似视频播放器的控件 <DataTemplate DataType="{x:Type v:VideoMedia}"> <MyLib:VideoPlayer/> </DataTemplate> (VideoPlayer类扩展了UserControl并简单地控制视频文件的播放) 如何将事件处理程序添加到VideoMedia类

如果我有一个名为
VideoMedia
(包含视频路径的标准Uri)的自定义类,并且我有一个
DataTemplate
,我使用它来创建类似视频播放器的控件

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

(VideoPlayer类扩展了UserControl并简单地控制视频文件的播放)

如何将事件处理程序添加到
VideoMedia
类中,以便它可以包含某种
TimeStarted
属性?我在运行时需要它,这样我就可以知道视频是否正在运行


我正在存储一个
IDictionary
集合,每2秒钟迭代一次,以判断视频是否正在播放。有更好的方法吗?

如果您的VideoPlayer用户控件正确构建,并带有IsPlaying Dependency属性。只需将VideoMedia.isplay绑定到VideoPlayer.isplay即可

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


您的意思是使用模板绑定?刚刚更新了帖子,IsPlayingDP是您的usercontrol属性,IsPlaying是您的Viewmodel属性。我得到:无法使用绑定检索值,并且不存在有效的回退值;改为使用默认值。BindingExpression:Path=isplay;DataItem='VideoMedia'(HashCode=51593576);目标元素是“VideoPlayer”(Name='UserControl');目标属性为“IsPlaying”(类型为“Boolean”)