/// <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; }