/// <summary>
        /// Creates a <see cref="DispatcherObservableCollection{T}"/> with an initial list of items, using the
        /// specified <see cref="CoreDispatcher"/>.
        /// </summary>
        /// <param name="dispatcher"></param>
        /// <param name="items"></param>
        public DispatcherObservableCollection(CoreDispatcher dispatcher, IEnumerable <T> items)
        {
            _dispatcher = dispatcher.Validate(nameof(dispatcher)).IsNotNull();
            _collection = new ObservableCollection <T>(items);

            _collection.CollectionChanged += OnCollectionChanged;
            (_collection as INotifyPropertyChanged).PropertyChanged += OnPropertyChanged;
        }