private void OnChanged(object sender, ShuffleCollectionChangedEventArgs e)
 {
     foreach (Song song in e.GetRemoved())
     {
         Unsubscribe(song);
     }
     foreach (Song song in e.GetAdded())
     {
         Subscribe(song);
     }
 }
示例#2
0
        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);
            }
        }
示例#3
0
 private void OnShuffleCollectionChanged(object sender, ShuffleCollectionChangedEventArgs e)
 {
     ShuffleCollectionChanged?.Invoke(this, new SubscriptionsEventArgs <IShuffleCollection, ShuffleCollectionChangedEventArgs>(sender, e));
 }
示例#4
0
 private void Shuffle_Changed(object sender, ShuffleCollectionChangedEventArgs e)
 {
     SetItemsSource(Source.Shuffle.ToArray());
 }