private void InitializePlaylistContent() { TracksViewModel tracksVM = new TracksViewModel(PlaylistCollection.GetPlaylist(Properties.Settings.Default.LastSelectedPlaylistGUID)); TrackListsViewModel trackListsVM = lb_PlaylistMenu.DataContext as TrackListsViewModel; if (trackListsVM == null) { throw new Exception("Failed to cast object"); } lv_Playlist.DataContext = tracksVM; if (trackListsVM.CurrentPlaylist != null) { lv_Playlist.ItemsSource = trackListsVM.CurrentPlaylist.Soundtracks as IEnumerable <TrackInfo>; tracksVM.UpdateSoundtracks(trackListsVM.CurrentPlaylist); } else { lv_Playlist.ItemsSource = null; } // Bind event for updating content of view-model of lb_PlaylistMenu tracksVM.PlaylistIsUpdatedEvent += (lb_PlaylistMenu.DataContext as TrackListsViewModel).UpdateTrackList; // Update trackQueue tracksVM.PlaylistIsUpdatedEvent += OnPlaylistIsUpdated; }
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()); } } }