DelayBind no vincula MvxCommands dentro de MvxTableViewCell en iOS

Tengo una ItemCell que henetworkinga de MvxTableViewCell . A continuación se simplifica:

Constructor :

 public ItemCell(IntPtr handle) : base(handle) { CreateLayout(); InitializeBindings(); } 

CreateLayout() crea y constriñe, entre otros elementos:

  • Un UILabel _label , y
  • A UIButton _button

InitializeBindings :

 private void InitializeBindings() { this.DelayBind(() => { var set = this.CreateBindingSet<ItemCell, ItemViewModel>(); set.Bind(_label).For(x => x.Text).SourceDescribed("'Label: ' + ItemNumber"); set.Bind(_button).To(vm => vm.ItemCommand); set.Apply(); }); } 

ViewModel contiene la siguiente propiedad y command:

 private string _itemNumber; public string ItemNumber { get { return _itemNumber; } set { SetProperty(ref _itemNumber, value); } } private IMvxCommand _itemCommand; public IMvxCommand ItemCommand { get { return _itemCommand?? (_itemCommand= new MvxCommand(() => { //Logic })); } } 

Cuando el TableView está enlazado a una colección y las celdas se repiten, el text de la label representa el valor correcto ("Etiqueta: {Número de artículo}"), pero onclick en el button no golpea el ItemCommand . También he intentado agregar .For("TouchUpInside") al enlace del button, pero eso no cambió nada.

Estoy confundido acerca de por qué la label se enlaza correctamente, pero el button no.

Lamentablemente, no tengo suficientes puntos para agregar un comentario, así que agregaré mi sugerencia como respuesta.

Lo que posiblemente podría estar sucediendo es que su evento táctil se maneje para toda la célula y, por lo tanto, el evento no se transmita a los hijos de esa célula. Es posible que el button esté enlazado correctamente, pero como el button dentro de su celda nunca recibirá el evento táctil, el command al que está obligado nunca se disparará .

EDITAR

Puedes echar un vistazo a este enlace que parece abordar tu problema. https://forums.xamarin.com/discussion/15560/how-to-add-a-custom-button-in-a-table-cell

Salida de debugging (Mvx.Trace ()) los límites de su UIButton. Incluso si se muestra, sus "límites" pueden ser 0. En este caso, no puede producirse ninguna interacción en él, y debe corregir su layout (restricciones o marco).