private void Tags_ItemClick(object sender, ItemClickEventArgs e)
 {
     if (ItemClickCommand?.CanExecute(e.ClickedItem) ?? false)
     {
         ItemClickCommand.Execute(e.ClickedItem);
     }
 }
Exemple #2
0
 public AmpTableViewSource(UITableView tableView)
     : base(tableView, typeof(T).Name, typeof(T).Name)
 {
     SelectedItemChanged += (sender, e) =>
     {
         ItemClickCommand.ExecuteIfPossible(SelectedItem);
     };
 }
Exemple #3
0
 private void OnItemClick(object sender, ItemClickEventArgs e)
 {
     if (ItemClickCommand != null)
     {
         if (ItemClickCommand.CanExecute(e.ClickedItem))
         {
             ItemClickCommand.Execute(e.ClickedItem);
         }
     }
 }
Exemple #4
0
        private void OnItemTapped(object sender, ItemTappedEventArgs e)
        {
            if (e.Item != null && ItemClickCommand != null && ItemClickCommand.CanExecute(e.Item))
            {
                ItemClickCommand.Execute(e.Item);
            }

            if (!AllowSelectItem)
            {
                SelectedItem = null;
            }
        }
        private void OnItemTapped(object sender, ItemTappedEventArgs e)
        {
            if (e.Item != null)
            {
                var execute = ItemClickCommand?.CanExecute(e);
                if (execute.HasValue && execute.Value)
                    ItemClickCommand?.Execute(e.Item);

                if (!MaintainSelection)
                    this.SelectedItem = null;
            }
        }
Exemple #6
0
 public override bool IsEnabled(int position)
 {
     if ((HasHeader() && position == 0) || (HasFooter() && position == Count - 1))
     {
         return(false);
     }
     else
     {
         if (ItemClickCommand != null)
         {
             return(ItemClickCommand.CanExecute(GetRawItem(position)));
         }
         else
         {
             return(base.IsEnabled(position));
         }
     }
 }
Exemple #7
0
        public override bool IsEnabled(int position)
        {
            var item = GetItemAt(position);

            if (item is ItemWrapperBase)
            {
                return(false);
            }
            else
            {
                if (ItemClickCommand != null)
                {
                    return(ItemClickCommand.CanExecute(item));
                }
                else
                {
                    return(base.IsEnabled(position));
                }
            }
        }
Exemple #8
0
        internal override void OnItemClicked(int clickedIndex)
        {
            // Note: don't call base.OnItemClicked(), because we override the default single-selection-only handling

            var item = ItemFromIndex(clickedIndex);

            if (IsItemClickEnabled)
            {
                // This is required for the NavigationView which references a non-public issue (#17546992 in NavigationViewList)
                IsItemItsOwnContainerOverride(item);

                ItemClickCommand.ExecuteIfPossible(item);
                ItemClick?.Invoke(this, new ItemClickEventArgs {
                    ClickedItem = item
                });
            }

            //Handle selection
            switch (SelectionMode)
            {
            case ListViewSelectionMode.None:
                break;

            case ListViewSelectionMode.Single:
                if (ItemsSource is ICollectionView collectionView)
                {
                    //NOTE: Windows seems to call MoveCurrentTo(item); we set position instead to have expected behavior when you have duplicate items in the list.
                    collectionView.MoveCurrentToPosition(clickedIndex);

                    // The CollectionView may have intercepted the change
                    clickedIndex = collectionView.CurrentPosition;
                }
                SelectedIndex = clickedIndex;
                break;

            case ListViewSelectionMode.Multiple:
            case ListViewSelectionMode.Extended:
                HandleMultipleSelection(clickedIndex, item);
                break;
            }
        }
Exemple #9
0
 private void ExecuteItemCommand(int clickCount)
 {
     if (clickCount > 1)
     {
         if (ItemDoubleClickCommand != null)
         {
             if (ItemDoubleClickCommand.CanExecute(ItemDoubleClickCommandParameter))
             {
                 ItemDoubleClickCommand.Execute(ItemDoubleClickCommandParameter);
             }
         }
     }
     else
     {
         if (ItemClickCommand != null)
         {
             if (ItemClickCommand.CanExecute(ItemClickCommandParameter))
             {
                 ItemClickCommand.Execute(ItemClickCommandParameter);
             }
         }
     }
 }
Exemple #10
0
        internal override void OnItemClicked(int clickedIndex)
        {
            var item = ItemFromIndex(clickedIndex);

            if (IsItemClickEnabled)
            {
                ItemClickCommand.ExecuteIfPossible(item);
                ItemClick?.Invoke(this, new ItemClickEventArgs {
                    ClickedItem = item
                });
            }

            //Handle selection
            switch (SelectionMode)
            {
            case ListViewSelectionMode.None:
                break;

            case ListViewSelectionMode.Single:
                if (ItemsSource is ICollectionView collectionView)
                {
                    //NOTE: Windows seems to call MoveCurrentTo(item); we set position instead to have expected behavior when you have duplicate items in the list.
                    collectionView.MoveCurrentToPosition(clickedIndex);

                    // The CollectionView may have intercepted the change
                    clickedIndex = collectionView.CurrentPosition;
                }
                SelectedIndex = clickedIndex;
                break;

            case ListViewSelectionMode.Multiple:
            case ListViewSelectionMode.Extended:
                HandleMultipleSelection(clickedIndex, item);
                break;
            }
        }
Exemple #11
0
 private void ExListView_ItemTapped(object sender, ItemTappedEventArgs e)
 {
     ItemClick?.Invoke(this, new SelectedItemChangedEventArgs(e.Item));
     ItemClickCommand?.Execute(e.Item);
     SelectedItem = null;
 }