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

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

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

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

            return(viewHolder);
        }
Exemplo n.º 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);
        }