private void OnChanged(object sender, ShuffleCollectionChangedEventArgs e) { foreach (Song song in e.GetRemoved()) { Unsubscribe(song); } foreach (Song song in e.GetAdded()) { Subscribe(song); } }
private void Change(ChangeCollectionItem <Song>[] removeChanges, ChangeCollectionItem <Song>[] addChanges, Song[] oldShuffle) { if (removeChanges.Length == 0 && addChanges.Length == 0) { return; } ShuffleCollectionChangedEventArgs args = new ShuffleCollectionChangedEventArgs(addChanges, removeChanges); Changed?.Invoke(this, args); OnPropertyChanged(nameof(Count)); if (Parent?.Parent == null) { return; } Song currentSong = Parent.Parent.CurrentSong; if (this.Contains(currentSong)) { UpdateCurrentSong(oldShuffle); } }
private void OnShuffleCollectionChanged(object sender, ShuffleCollectionChangedEventArgs e) { ShuffleCollectionChanged?.Invoke(this, new SubscriptionsEventArgs <IShuffleCollection, ShuffleCollectionChangedEventArgs>(sender, e)); }
private void Shuffle_Changed(object sender, ShuffleCollectionChangedEventArgs e) { SetItemsSource(Source.Shuffle.ToArray()); }