WPF Prism の動画再生(MediaElement.Play())を、MVVM パターンで実装する方法を説明します。
- IMediaService というインターフェイスを導入します。
View コードビハインド
- ビューに IMediaService を実装します。
View Xaml
- 次に、DemoView.XAML にいくつかのコードを加えます。
MediaElement に名前を付けて、コード ビハインドが上記のようにアクセスできるようにします。
<MediaElement Source="{Binding CurrentMedia}" x:Name="MediaPlayer"/>
ビューに名前を付けて、パラメーターとして渡すことができるようにします。
インタラクティブな名前空間をインポートしておきます。(他にも必要な名前空間は省略)
- トリガーを介して Loaded イベントを接続し、コマンドを介してビュー自体(x:Name=MediaService)をビュー モデルに渡します。
- MediaElement を操作するボタン(コマンド)を準備しておきます。
ViewModel
- ViewModel で MediaElement のメソッドを呼び出せるようにします。
これらの手順に従うことで、ViewModel内でMediaElementを再生および停止することができます。
少々コードビハインドに記述する必要がありますが、MVVMパターンは守られたコードになっていると思います。