public void Play(Track track) { if (CurrentTrack.Equals(track)) { if (!mediaPlayer.IsPlaying) { mediaPlayer.Resume(); } } else { CurrentTrack = track; mediaPlayer.StartPlayer(track.FilePath); mediaPlayer.Resume(); mediaPlayer.Completion += delegate { var index = Tracks.IndexOf(CurrentTrack); if (++index >= Tracks.Count) { index = 0; } if (index == 0 && RepeatTracks) { Play(Tracks[index]); } else if (index > 0) { Play(Tracks[index]); } }; } }