@@ -17,6 +17,7 @@ public MediaPreview(MediaPreviewViewModel model)
1717 ViewModel = model ;
1818 InitializeComponent ( ) ;
1919 PlayerContext . Loaded += PlayerContext_Loaded ;
20+ PlayerContext . Unloaded += PlayerContext_Unloaded ;
2021 Unloaded += MediaPreview_Unloaded ;
2122 }
2223
@@ -29,13 +30,20 @@ private void PlayerContext_Loaded(object sender, RoutedEventArgs e)
2930 ViewModel . TogglePlaybackRequested += TogglePlaybackRequestInvoked ;
3031 }
3132
33+ private void PlayerContext_Unloaded ( object sender , RoutedEventArgs e )
34+ {
35+ PlayerContext . MediaPlayer . VolumeChanged -= MediaPlayer_VolumeChanged ;
36+ ViewModel . TogglePlaybackRequested -= TogglePlaybackRequestInvoked ;
37+ }
38+
3239 private void MediaPreview_Unloaded ( object sender , RoutedEventArgs e )
3340 {
3441 // The MediaPlayerElement isn't properly disposed by Windows so we set the source to null
3542 // to avoid issues the next time the control is used.
3643 PlayerContext . Source = null ;
3744
3845 PlayerContext . Loaded -= PlayerContext_Loaded ;
46+ PlayerContext . Unloaded -= PlayerContext_Unloaded ;
3947 Unloaded -= MediaPreview_Unloaded ;
4048 }
4149
@@ -47,7 +55,7 @@ private void MediaPlayer_VolumeChanged(MediaPlayer sender, object args)
4755 }
4856 }
4957
50- private void TogglePlaybackRequestInvoked ( object sender , EventArgs e )
58+ private void TogglePlaybackRequestInvoked ( object ? sender , EventArgs e )
5159 {
5260 if ( PlayerContext . MediaPlayer . PlaybackSession . PlaybackState is not MediaPlaybackState . Playing )
5361 {
0 commit comments