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); }
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); }