protected override void OnPointerPressed(PointerRoutedEventArgs e) { if (SelectionModel != null) { if (e.KeyModifiers.HasFlag(VirtualKeyModifiers.Shift) && !SelectionModel.SingleSelect) { if (e.KeyModifiers.HasFlag(VirtualKeyModifiers.Control)) { SelectionModel.DeselectRangeFromAnchor(RepeatedIndex); } else { SelectionModel.SelectRangeFromAnchor(RepeatedIndex); } } else if (e.KeyModifiers.HasFlag(VirtualKeyModifiers.Control)) { if (SelectionModel.IsSelected(RepeatedIndex).Value) { SelectionModel.Deselect(RepeatedIndex); } else { SelectionModel.Select(RepeatedIndex); } } else { SelectionModel.Select(RepeatedIndex); this.Focus(FocusState.Keyboard); } } base.OnPointerPressed(e); }
private void SelectRangeFromAnchor(SelectionModel manager, int groupIndex, int itemIndex, bool select) { Log.Comment("SelectRangeFromAnchor " + groupIndex + "." + itemIndex + " select:" + select.ToString()); if (select) { manager.SelectRangeFromAnchor(groupIndex, itemIndex); } else { manager.DeselectRangeFromAnchor(groupIndex, itemIndex); } }