Spring – Rev 1

Subversion Repositories:
Rev:
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Configuration.Properties;

namespace Configuration
{
    public class ObservableUniqueCollection<T> : ObservableCollection<T>
    {
#region Constructors, Destructors and Finalizers

        public ObservableUniqueCollection(IEnumerable<T> items)
        {
            foreach (var item in items)
            {
                if (Contains(item))
                {
                    continue;
                }

                base.Add(item);
            }
        }

        [UsedImplicitly]
        public ObservableUniqueCollection()
        {
        }

#endregion

#region Public Methods

        public new void Add(T item)
        {
            if (Contains(item))
            {
                return;
            }

            base.Add(item);
        }

        public new void Insert(int index, T item)
        {
            if (Contains(item))
            {
                return;
            }

            base.Insert(index, item);
        }

        public new void InsertItem(int index, T item)
        {
            if (Contains(item))
            {
                return;
            }

            base.InsertItem(index, item);
        }

#endregion
    }
}