protected override void ApplySortCore(PropertyDescriptor property, ListSortDirection direction)
        {
            List <T> list = (List <T>)base.Items;

            if (list != null)
            {
                SortableBindingListComparer <T> comparer = new SortableBindingListComparer <T>(property.Name, direction);
                list.Sort(comparer);
                this._isSorted = true;
            }
            else
            {
                this._isSorted = false;
            }
            this._sortProperty  = property;
            this._sortDirection = direction;
            this.OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, -1));
        }
        protected override void ApplySortCore(PropertyDescriptor property, ListSortDirection direction)
        {
            var items = (List <T>) this.Items;

            if (items != null)
            {
                var pc = new SortableBindingListComparer <T>(property.Name, direction);

                items.Sort(pc);

                _isSorted = true;
            }
            else
            {
                _isSorted = false;
            }

            _sortProperty  = property;
            _sortDirection = direction;


            OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, -1));
        }