private void _toggle(ItemSlotPlain s)
 {
     if (s == ItemSlotPlain.Action || s == ItemSlotPlain.Unused)
     {
         if (!SelectedSlots.Contains(ItemSlotPlain.Action))
         {
             SelectedSlots.Add(ItemSlotPlain.Action);
             SelectedSlots.Add(ItemSlotPlain.Unused);
             _fireSelectionChanged(ItemSlotPlain.Action, SelectorActionType.Add);
             _fireSelectionChanged(ItemSlotPlain.Unused, SelectorActionType.Add);
         }
         else
         {
             SelectedSlots.Remove(ItemSlotPlain.Action);
             SelectedSlots.Remove(ItemSlotPlain.Unused);
             _fireSelectionChanged(ItemSlotPlain.Action, SelectorActionType.Remove);
             _fireSelectionChanged(ItemSlotPlain.Unused, SelectorActionType.Remove);
         }
     }
     else
     {
         if (!SelectedSlots.Contains(s))
         {
             SelectedSlots.Add(s);
             _fireSelectionChanged(s, SelectorActionType.Add);
         }
         else
         {
             SelectedSlots.Remove(s);
             _fireSelectionChanged(s, SelectorActionType.Remove);
         }
     }
 }
 private void _fireSelectionChanged(ItemSlotPlain p, SelectorActionType t)
 {
     if (SelectionChanged != null)
     {
         SelectionChanged(this, new MultiSlotSelectorEventArgs(p, t));
     }
 }