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); }
protected override void RemoveSortCore() { this.sorts = null; }