public void SetTrackStatus(TrackStatusEventArgs e) { // Check if (e == null || e.Index == -1) { return; } TracksViewModel tracksVM = lv_Playlist.DataContext as TracksViewModel; TrackListsViewModel trackListsVM = lb_PlaylistMenu.DataContext as TrackListsViewModel; // TODO: try to rewrite this Playlist pl = trackListsVM.TrackLists.First(x => x.GUID == e.OwnerListGUID); pl.Soundtracks.Find(x => x.GUID == e.Track.GUID).TrackStatus = e.Track.TrackStatus; if (pl.GUID == e.OwnerListGUID) { tracksVM.UpdateTrackStatus(e); } }
private void RefreshPlaylistContent() { TracksViewModel tracksVM = lv_Playlist.DataContext as TracksViewModel; if (tracksVM == null) { return; } TrackListsViewModel trackListsVM = lb_PlaylistMenu.DataContext as TrackListsViewModel; if (trackListsVM == null) { return; } Playlist pl = trackListsVM.CurrentPlaylist; if (pl == null) { lv_Playlist.Visibility = Visibility.Hidden; return; } tracksVM.UpdatePlaylistInfo(pl); tracksVM.UpdateSoundtracks(pl); lv_Playlist.ItemsSource = tracksVM.Soundtracks as IEnumerable <TrackInfo>; // Update info Properties.Settings.Default.LastSelectedPlaylistGUID = pl.GUID; Properties.Settings.Default.Save(); // Show playing track if (lb_PlaylistMenu.SelectedItem != null && ListContentIsRefreshedEvent != null) { if (Properties.Settings.Default.TaskPlaylistGUID == pl.GUID) { tracksVM.UpdateTrackStatus(ListContentIsRefreshedEvent()); } } }