public virtual Color? GetItemBackgroundColor(AdaptiveSelector selector, object selectorIdentifier, object item, bool isSelected) { var group = GetItemGroup(selector, selectorIdentifier, item); if (group != null) return group.Color; return null; }
public override Color? GetItemBackgroundColor(AdaptiveSelector selector, object selectorIdentifier, object item, bool isSelected) { if (object.Equals(ModeOneItem, item)) return ModeOneColor; if (object.Equals(ModeTwoItem, item)) return ModeTwoColor; return base.GetItemBackgroundColor(selector, selectorIdentifier, item, isSelected); }
public override void OnItemUnselected(AdaptiveSelector selector, object selectorIdentifier, object unselectedItem) { if(object.Equals(ModeOneItem, unselectedItem)) { ModeOneItem = null; } else if(object.Equals(ModeTwoItem, unselectedItem)) { ModeTwoItem = null; } base.OnItemUnselected(selector, selectorIdentifier, unselectedItem); }
public override IReadOnlyList<IUserAction> GetAvailableUserAction(AdaptiveSelector selector, object selectorIdentifier, object item) { var result = new List<IUserAction>(); var ua = new UserAction("set Mode One", (x) => { selector.UnselectItem(ModeOneItem); ModeOneItem = item; selector.EnsureItemSelected(item); }); if(!object.Equals(item, ModeOneItem)) result.Add(ua); ua = new UserAction("set Mode Two", (x) => { selector.UnselectItem(ModeTwoItem); ModeTwoItem = item; selector.EnsureItemSelected(item); }); if (!object.Equals(item, ModeTwoItem)) result.Add(ua); ua = new UserAction("swap", (x) => { var one = ModeOneItem; var two = ModeTwoItem; selector.UnselectItem(one); selector.UnselectItem(two); ModeOneItem = two; ModeTwoItem = one; selector.EnsureItemSelected(ModeOneItem); selector.EnsureItemSelected(ModeTwoItem); }); if(ModeOneItem != null && ModeTwoItem != null) result.Add(ua); return result; }
// this behavior allows up to two selected items to have custom mode (Mode 1 and Mode 2). // different modes will be distinguished by colour (Red and Blue) // First selected item wil lalways be mode 1, second will always be mode 2 (if mode from first item have not been removed) public override void OnItemSelected(AdaptiveSelector selector, object selectorIdentifier, object selectedItem) { base.OnItemSelected(selector, selectorIdentifier, selectedItem); if (object.Equals(ModeOneItem, selectedItem) || object.Equals(ModeTwoItem, selectedItem)) return; if (ModeOneItem == null) { ModeOneItem = selectedItem; } else if(ModeTwoItem == null) { ModeTwoItem = selectedItem; } }
public virtual Visibility GetSelectionMarkersVisibility(AdaptiveSelector selector, object selectorIdentifier, int allItemsCount, int selectedItemsCount) { // 0 or 1 item, don't show markers if (allItemsCount < 2) { return Visibility.Collapsed; } // not all items selected, show markers if (selectedItemsCount < allItemsCount) { return Visibility.Visible; } else // all items selected, don't show markers { return Visibility.Collapsed; } }
public virtual void OnItemUnselected(AdaptiveSelector selector, object selectorIdentifier, object unselectedItem) { }
public virtual IAdaptiveSelectorItemGroup GetItemGroup(AdaptiveSelector selector, object selectorIdentifier, object item) { return null; }
public virtual IReadOnlyList<IUserAction> GetAvailableUserAction(AdaptiveSelector selector, object selectorIdentifier, object item) { return new IUserAction[0]; }