Si j'ai une classe personnalisée appelée VideoMedia
(qui contient un Uri standard pour le chemin vidéo) et j'ai DataTemplate
que j'utiliser pour créer un lecteur vidéo comme contrôles.DataTemplates WPF et classes personnalisées pour gérer les événements
<DataTemplate DataType="{x:Type v:VideoMedia}">
<MyLib:VideoPlayer/>
</DataTemplate>
(La classe VideoPlayer étend UserControl et contrôle simplement la lecture d'un fichier vidéo)
Comment puis-je ajouter un gestionnaire d'événements dans la classe VideoMedia
, de sorte qu'il peut contenir une sorte de TimeStarted
propriété? J'en ai besoin à l'exécution pour savoir si la vidéo est en cours d'exécution.
Je stocke une collection IDictionary<int, VideoMedia>
que je répète toutes les 2 secondes pour indiquer si les vidéos sont en cours de lecture. Y a-t-il une meilleure façon de le faire?
vous voulez dire utiliser la liaison de modèle? – Mark
Juste mis à jour le poste, IsPlayingDP est votre propriété usercontrol et IsPlaying est votre propriété Viewmodel. –
J'obtiens: Impossible de récupérer la valeur en utilisant la liaison et aucune valeur de repli valide n'existe; en utilisant par défaut à la place. BindingExpression: Path = IsPlaying; DataItem = 'VideoMedia' (HashCode = 51593576); l'élément cible est 'VideoPlayer' (Name = 'UserControl'); La propriété target est 'IsPlaying' (type 'Boolean') – Mark