 <p>You can bind Media Element directly from the view model</p> <p><strong>in xaml:</strong></p> <pre><code>&lt;ContentControl Content="{Binding MediaElementObject}"/&gt; </code></pre> <p><strong>in ViewModel:</strong></p> <pre><code>private MediaElement _mediaElementObject; public MediaElement MediaElementObject { get { return _mediaElementObject; } set { _mediaElementObject = value;RaisePropertyChanged(); } } </code></pre> <p>And on <code>OnNavigatedTo</code> Override method you can create it's new object &amp; can register it's events.</p> <pre><code>MediaElementObject=new MediaElement(); </code></pre> <p>So that you can do all thing from the viewmodel itself.</p>