private void RemoveCompositions()
        {
            foreach (var child in Compositions.Where(x => x.IsChecked).ToList())
            {
                child.IsChecked = false;
                if (child.State == ItemState.Added)
                {
                    Compositions.Remove(child);
                }
                else
                {
                    child.State = ItemState.Removed;
                }
            }

            CompositionsView.Refresh();
            CheckItem();
        }
        private void Save()
        {
            var removed = Compositions.Where(x => x.State == ItemState.Removed).ToList();

            removed.ForEach(x => Compositions.Remove(x));

            var added = Compositions.Where(x => x.State == ItemState.Added).ToList();

            added.ForEach(x => x.State = ItemState.Unchanged);

            var updated = Compositions.Where(x => x.State == ItemState.Updated).ToList();

            updated.ForEach(x => x.State = ItemState.Unchanged);

            _providerFactory.CompositionsProvider.RemoveCompositions(removed);
            _providerFactory.CompositionsProvider.AddCompositions(added);
            _providerFactory.CompositionsProvider.UpdateCompositions(updated);

            _providerFactory.CompositionsProvider.SaveChanges();

            CheckItem();
        }