public override Object OnCreateFooterItemViewHolder(ViewGroup p0, int p1)
        {
            var itemBindingContext = new MvxAndroidBindingContext(p0.Context, BindingContext.LayoutInflaterHolder);

            var viewHolder =
                new MvxRecyclerViewHolder(
                    InflateViewForHolder(HeaderFooterDetails.FooterLayoutId, p0, p1, itemBindingContext),
                    itemBindingContext)
            {
                DataContext = BindingContext.DataContext
            };

            viewHolder.Click += (e, a) => {
                if (FooterClickCommand?.CanExecute(viewHolder.DataContext) ?? false)
                {
                    FooterClickCommand.Execute(viewHolder.DataContext);
                }
            };

            viewHolder.LongClick += (e, a) =>
            {
                if (FooterLongClickCommand?.CanExecute(viewHolder.DataContext) ?? false)
                {
                    FooterLongClickCommand.Execute(viewHolder.DataContext);
                }
            };

            return(viewHolder);
        }
コード例 #2
0
        protected virtual void ExecuteCommandOnItem(ICommand command)
        {
            if (command == null)
            {
                return;
            }

            var item = DataContext;

            if (item == null)
            {
                return;
            }

            if (_viewType == MvxBaseTemplateSelector.HeaderViewTypeId)
            {
                if (item is MvxHeaderItemData)
                {
                    if (HeaderClickCommand != null && HeaderClickCommand.CanExecute(null))
                    {
                        HeaderClickCommand.Execute(null);
                    }
                }
                return;
            }

            if (_viewType == MvxBaseTemplateSelector.FooterViewTypeId)
            {
                if (item is MvxFooterItemData)
                {
                    if (FooterClickCommand != null && FooterClickCommand.CanExecute(null))
                    {
                        FooterClickCommand.Execute(null);
                    }
                }
                return;
            }

            if (item is MvxGroupedData)
            {
                var groupedData = item as MvxGroupedData;
                if (GroupHeaderClickCommand != null && GroupHeaderClickCommand.CanExecute(groupedData.Key))
                {
                    GroupHeaderClickCommand.Execute(groupedData.Key);
                }
                return;
            }

            if (!command.CanExecute(item))
            {
                return;
            }

            command.Execute(item);
        }
コード例 #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FooterContentControl"/> class.
        /// </summary>
        public FooterContentControl()
        {
            IsHitTestVisible = true;
            Background       = Brushes.Transparent;

            MouseLeftButtonDown += (s, e) =>
            {
                Mouse.Capture(this);
                //e.Handled = true;
            };

            MouseLeftButtonUp += (s, e) =>
            {
                if (Equals(Mouse.Captured, this))
                {
                    Mouse.Capture(null);
                }
                var position = Mouse.GetPosition(this);
                if (position.X < 0 || position.Y < 0 || position.X > ActualWidth || position.Y > ActualHeight)
                {
                    return;
                }
                var localContent = s as FooterContentControl;
                if (localContent == null)
                {
                    return;
                }
                if (e.ClickCount != 1)
                {
                    return;
                }

                if (FooterClickCommand == null)
                {
                    return;
                }
                var paras = new FooterClickCommandParameters {
                    Column = localContent.Column
                };
                if (FooterClickCommand.CanExecute(paras))
                {
                    FooterClickCommand.Execute(paras);
                }
            };
        }