/// <summary> /// Construtor padrão. /// </summary> /// <param name="collection">Coleção que será adaptada.</param> /// <param name="proxyCreator"></param> /// <param name="itemCreator"></param> public ObservableCollectionProxy(IObservableCollection <T> collection, Func <T, TProxy> proxyCreator, Func <TProxy, T> itemCreator) { collection.Require("collection").NotNull(); proxyCreator.Require("proxyCreator").NotNull(); _collectionChangedHandlers = new Dictionary <NotifyCollectionChangedEventHandler, CollectionChangedWrapperEventData>(); Initialize(collection, proxyCreator, itemCreator); }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="source">Coleção de origem com todos os dados da lista.</param> /// <param name="selectedItems">Relação dos itens selecionados.</param> /// <param name="selectionComparer">Comparador que será utilizado na solução.</param> public SelectionCollection(IObservableCollection <T> source, IObservableCollection <T> selectedItems, SelectionEntryEqualityComparer <T> selectionComparer) { source.Require("source").NotNull(); selectedItems.Require("selectedItems").NotNull(); _selectionComparer = selectionComparer == null ? (typeof(IEquatable <T>).IsAssignableFrom(typeof(T)) ? new SelectionEntryEqualityComparer <T>(Compare2) : new SelectionEntryEqualityComparer <T>(Compare1)) : selectionComparer; _selectedItems = selectedItems; Initialize(source, CreateEntryProxy, null); _selectedItems.CollectionChanged += SelectedItemsCollectionChanged; }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="source">Coleção de origem com todos os dados da lista.</param> /// <param name="selectedItems">Relação dos itens selecionados.</param> /// <param name="selectionComparer">Comparador que será utilizado na solução.</param> /// <param name="selectedItemCreator">Delegate usado para cria o item selecionado.</param> public SelectionCollection(IObservableCollection <T> source, IObservableCollection <TProxy> selectedItems, SelectionEntryEqualityComparer <T, TProxy> selectionComparer, Func <T, TProxy> selectedItemCreator) { source.Require("source").NotNull(); selectedItems.Require("selectedItems").NotNull(); selectionComparer.Require("selectionComparer").NotNull(); selectedItemCreator.Require("selectedItemCreator").NotNull(); _selectionComparer = selectionComparer; _selectedItemCreator = selectedItemCreator; _selectedItems = selectedItems; Initialize(source, CreateEntryProxy, null); _selectedItems.CollectionChanged += SelectedItemsCollectionChanged; }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="name">Nome do indice.</param> /// <param name="collection">Coleção que será observada.</param> /// <param name="watchProperties">Relação das propriedades assistidas.</param> /// <param name="keyGetter">Ponteiro do método usado para recupera o valor da chave do item.</param> /// <param name="comparer">Comparador que será utilizado.</param> public ObservableCollectionIndex(string name, IObservableCollection <T> collection, string[] watchProperties, Func <T, object> keyGetter, System.Collections.IComparer comparer) { name.Require("name").NotNull().NotEmpty(); collection.Require("collection").NotNull(); keyGetter.Require("keyGetter").NotNull(); comparer.Require("comparer").NotNull(); _name = name; _collection = collection; _watchProperties = watchProperties ?? new string[0]; _keyGetter = keyGetter; _comparer = comparer; _collection.CollectionChanged += CollectionCollectionChanged; }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="source">Relação da coleção de origem dos dados.</param> /// <param name="comparer">Comparador que será utilizado para ordenar os itens.</param> public SortableObservableCollection(IObservableCollection <T> source, IComparer <T> comparer) { source.Require("source").NotNull(); comparer.Require("comparer").NotNull(); _source = source; _comparer = comparer; _comparerPropertiesContainer = comparer as IPropertiesContainer; _source.CollectionChanged += SourceCollectionChanged; _indexes = new BaseObservableCollection <int>(); for (var i = 0; i < _source.Count; i++) { _indexes.Add(i); } foreach (var i in _source) { RegisterItem(i); } CalculateIndexes(); }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="collection"></param> public ObservableCollectionDebugView(IObservableCollection <T> collection) { collection.Require("collection").NotNull(); this._collection = collection; }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="source"></param> public ObservableCollectionWrapper(IObservableCollection source) { source.Require("source").NotNull(); _source = source; _sourceList = (System.Collections.IList)source; }