예제 #1
0
 /// <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;
 }
예제 #2
0
 /// <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;
 }