Catrobat.IDE.WindowsPhone.Controls.ListsViewControls.BindableGridView.SelectedItemsOnCollectionChanged C# (CSharp) Method

SelectedItemsOnCollectionChanged() private method

private SelectedItemsOnCollectionChanged ( object sender, NotifyCollectionChangedEventArgs args ) : void
sender object
args System.Collections.Specialized.NotifyCollectionChangedEventArgs
return void
        private void SelectedItemsOnCollectionChanged(object sender,
            NotifyCollectionChangedEventArgs args)
        {
            if (BindableSelectedItems == null)
                return;

            if (args.Action == NotifyCollectionChangedAction.Reset)
            {
                if (SelectedItems.Count > 0)
                    SelectedItems.Clear();
                return;
            }


            if (args.OldItems != null)
                foreach (var item in args.OldItems)
                {
                    if (BindableSelectedItems.Contains(item))
                        BindableSelectedItems.Remove(item);
                }

            if (args.NewItems != null)
                foreach (var item in args.NewItems)
                {
                    if (!BindableSelectedItems.Contains(item))
                    {
                        var index = SelectedItems.IndexOf(item);
                        BindableSelectedItems.Insert(index, item);
                    }
                }
        }