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