2009-11-23 8 views
0

VideoMedia (비디오 경로에 대해 표준 Uri가 포함되어 있음)이라는 사용자 정의 클래스가 있는데 컨트롤과 같은 비디오 플레이어를 만드는 데 사용하는 DataTemplate이 있습니다. WPF DataTemplates 및 이벤트 처리를위한 사용자 정의 클래스

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

은 ( VideoPlayer 클래스는 UserControl을 확장하고 간단하게 비디오 파일의 재생 제어)가 TimeStarted의 종류를 포함 할 수 있도록 내가는 VideoMedia 클래스에 이벤트 처리기를 추가하려면 어떻게

을 재산? 런타임에이를 필요로하므로 비디오가 실행 중인지 확인할 수 있습니다.

나는 비디오가 재생 중인지를 알기 위해 매 2 초마다 반복하는 IDictionary<int, VideoMedia> 컬렉션을 저장하고 있습니다. 그것을하는 더 좋은 방법이 있습니까?

답변

1

VideoPlayer usercontrol이 IsPlaying 종속성 속성으로 제대로 빌드 된 경우. VideoPlayer에 VideoMedia.Base를 바인딩하면됩니다. 재생 중이고 잘 할 수 있습니다.

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

템플릿 바인딩을 사용 하시겠습니까? – Mark

+0

게시글을 업데이트하면 IsPlayingDP는 usercontrol 속성이고 IsPlaying은 Viewmodel 속성입니다. –

+0

바인딩을 사용하여 값을 검색 할 수 없으며 올바른 대체 값이 존재하지 않습니다. 대신에 기본값을 사용하십시오. BindingExpression : Path = IsPlaying; DataItem = 'VideoMedia'(HashCode = 51593576); 대상 요소는 'VideoPlayer'(Name = 'UserControl')입니다. 대상 속성이 'IsPlaying'(유형 '부울')입니다. – Mark