Exemplo n.º 1
0
 protected internal Task OnSelectedCommand(BLMouseEventArgs eventArgs)
 {
     // un-select row if the user is holding the ctrl key on already selected row
     if (eventArgs.CtrlKey && eventArgs.Button == MouseButton.Left &&
         ParentDataGrid.SelectedRow != null &&
         (object)Item == (object)ParentDataGrid.SelectedRow)
     {
         return(Selected.InvokeAsync(default));
Exemplo n.º 2
0
 private async Task HandleSingleSelectClick(BLMouseEventArgs eventArgs)
 {
     // Un-select row if the user is holding the ctrl key on already selected row.
     if (ParentDataGrid.SingleSelect && IsCtrlClick(eventArgs) &&
         ParentDataGrid.SelectedRow != null &&
         Item.IsEqual(ParentDataGrid.SelectedRow))
     {
         await ParentDataGrid.Select(default);
Exemplo n.º 3
0
        private async Task HandleMultiSelectClick(BLMouseEventArgs eventArgs)
        {
            if (ParentDataGrid.MultiSelect)
            {
                var isSelected = (ParentDataGrid.SelectedRows == null || (ParentDataGrid.SelectedRows != null && !ParentDataGrid.SelectedRows.Any(x => x.IsEqual(Item))));
                var shiftClick = (eventArgs.ShiftKey && eventArgs.Button == MouseButton.Left);

                await OnMultiSelectCommand(isSelected || shiftClick, shiftClick);
            }
        }
Exemplo n.º 4
0
        protected internal Task OnSelectedCommand(BLMouseEventArgs eventArgs)
        {
            var selectable = ParentDataGrid.RowSelectable?.Invoke(Item) ?? true;

            if (!selectable)
            {
                return(Task.CompletedTask);
            }

            // un-select row if the user is holding the ctrl key on already selected row
            if (eventArgs.CtrlKey && eventArgs.Button == MouseButton.Left &&
                ParentDataGrid.SelectedRow != null &&
                (object)Item == (object)ParentDataGrid.SelectedRow)
            {
                return(Selected.InvokeAsync(default));
Exemplo n.º 5
0
        protected internal async Task HandleClick(BLMouseEventArgs eventArgs)
        {
            await Clicked.InvokeAsync(new DataGridRowMouseEventArgs <TItem>(Item, eventArgs));

            var selectable = ParentDataGrid.RowSelectable?.Invoke(Item) ?? true;

            if (!selectable)
            {
                return;
            }

            // un-select row if the user is holding the ctrl key on already selected row
            if (eventArgs.CtrlKey && eventArgs.Button == MouseButton.Left &&
                ParentDataGrid.SelectedRow != null &&
                (object)Item == (object)ParentDataGrid.SelectedRow)
            {
                await Selected.InvokeAsync(default);
Exemplo n.º 6
0
        protected internal async Task HandleClick(BLMouseEventArgs eventArgs)
        {
            if (!clickFromCheck)
            {
                await ParentDataGrid.OnRowClickedCommand(new(Item, eventArgs) );
            }

            var selectable = ParentDataGrid.RowSelectable?.Invoke(Item) ?? true;

            if (!selectable)
            {
                return;
            }

            if (!clickFromCheck)
            {
                await HandleSingleSelectClick(eventArgs);
            }

            await HandleMultiSelectClick(eventArgs);

            clickFromCheck = false;
        }
Exemplo n.º 7
0
 public DataGridRowMouseEventArgs(TItem item, BLMouseEventArgs mouseEventArgs)
 {
     Item           = item;
     MouseEventArgs = mouseEventArgs;
 }
Exemplo n.º 8
0
        private bool IsCtrlClick(BLMouseEventArgs eventArgs)
        {
            var isMacOsCtrl = ParentDataGrid.IsClientMacintoshOS && eventArgs.MetaKey;

            return((eventArgs.CtrlKey || isMacOsCtrl) && eventArgs.Button == MouseButton.Left);
        }