viewdestroy supported platforms mvxasynccommand data c# data-binding xamarin xamarin.android mvvmcross

c# - supported - Cómo actualizar la vista desde ViewModel usando MVVMCross y Xamarin.Android



mvxasynccommand (1)

Bueno, dado que ViewModel no debe conocer la View , no debe llamar a ningún método de la misma.

Propondría un event en su ViewModel donde su View puede suscribirse. Entonces llama a su event algo así como FabClickDone y su vista hace lo que quiera, cuando ocurrió este evento. En tu caso desplazándote.

Aquí hay un ejemplo de código para su ViewModel:

public delegate void FabClickDoneEvent(object sender, EventArgs args); public event FabClickDoneEvent FabClickDone; protected virtual void OnFabClickDone() { FabClickDone?.Invoke(this, EventArgs.Empty); }

Entonces solo llámalo por

void onclick(sender object , eventargs e) { // Do something inside your viewmodel // ... OnFabClickDone(); }

En tu constructor de View, suscríbete a este evento:

ViewModel.FabClickDone += ViewModel_FabClickDone;

Y crea un método donde quieras hacer tu desplazamiento

void ViewModel_FabClickDone(Object sender, EventArgs e) { mrecyclerview.SmoothScrollToPosition(somevariable++); // do something. }

Como está usando MVVMcross, le sugiero que use un comando, donde llama a OnFabClickDone ();

Soy nuevo en MVVMCross con xamarin.android tan poco atacado con un escenario. Tengo una réplica de fab y mvx.recycler dentro de un fragmento. así que cuando hago clic en este fab hará que la vista recicladora se desplace por una fila.

es decir

void onclick(sender object ,eventargs e) { mrecyclerview.SmoothScrollToPosition(somevariable++); // do something. }

esto está rompiendo el patrón mvvm, entonces hay alguna forma o método en MVVM Cross que pueda usar para escuchar de nuevo la Vista desde ViewModel.

fab.click vinculante con ICommand => viewmodel => view => updatescroll ().

gracias por adelantado.