Exemple #1
0
    public void ApplySort(ListSortDescriptionCollection
                          sortCollection)
    {
        bool oldRaise = RaiseListChangedEvents;

        RaiseListChangedEvents = false;
        try
        {
            PropertyComparerCollection <T> tmp
                = new PropertyComparerCollection <T>(sortCollection);
            List <T> items = new List <T>(this);
            items.Sort(tmp);
            int index = 0;
            foreach (T item in items)
            {
                SetItem(index++, item);
            }
            this.sorts = tmp;
        }
        finally
        {
            RaiseListChangedEvents = oldRaise;
            ResetBindings();
        }
    }
 private SyncSession(string planName, DataProviderBase provider, PropertyComparerCollection comparers, PropertySetterCollection setters, IList <LogProviderBase> loggers, PropertyMappingCollection mappings)
 {
     this.planName  = planName;
     this.provider  = provider;
     this.comparers = comparers;
     this.setters   = setters;
     this.loggers   = loggers;
     this.mappings  = mappings;
     this.batchSize = 1;
 }
        private static PropertyComparerCollection CreateComparers(HashSet <string> comparerNames, ComparerConfigurationElementCollection comparerConfigSet)
        {
            var comparers = new PropertyComparerCollection();

            foreach (string name in comparerNames)
            {
                var itemConfig = comparerConfigSet[name];
                if (itemConfig == null)
                {
                    throw new ConfigurationErrorsException(string.Format("没有找到名为 {0} 的比较器", name));
                }

                comparers.Add(name, CreateInstance <IPropertyComparer>(itemConfig.Type));
            }

            return(comparers);
        }
Exemple #4
0
 protected override void RemoveSortCore()
 {
     this.sorts = null;
 }