/// <summary> /// Toggle whether the given item view is selected /// </summary> virtual protected void ToggleSelection(UIListItemViewBase <ItemModel> view) { if (view.IsSelected) { int index = selectedViews.IndexOf(view as ItemView); Assert.IsTrue(index >= 0, "Tried to deselect an item not currently selected by this selection manager"); DeselectAt(index); } else { SelectView(view); } }
/// <summary> /// Select the given view /// </summary> /// <param name="view"></param> virtual protected void SelectView(UIListItemViewBase <ItemModel> view) { if (selectedViews.Count >= maxSelectedItems && selectionFullBehaviour == SelectionFullBehavior.DeselectOldest) { DeselectAt(0); } if (selectedViews.Count < maxSelectedItems) { view.IsSelected = true; selectedViews.Add(view as ItemView); selectedModels.Add(view.Model); selectedItemEvent.Invoke(view.Model); selectionChangedEvent.Invoke(); } }