Pasar datos entre los modelos de vista MvvmCross
Estoy trabajando en la aplicación Android de Xamarin y estoy utilizando MvvmCross.No soy capaz de pasar y recuperar datos entre Viewmodels. Cuál es la solución ?
- Los archivos XAML.g.cs generados automáticamente no se pueden compilar en el proyecto PCL Xamarin Forms
- Fundamentos de Xamarin. Construcción fallida. Consulte el registro de compilación para obtener detalles
- Convertir la aplicación existente de Windows 10 UWP en Android
- ¿Dónde está la clave de firma de Android en el disco que crea Xamarin Studio?
- Android - Bitmap.CreateBitmap - excepción de puntero nulo
- Xamarin, Android. Cada vez que ejecute la aplicación en el dispositivo, la aplicación se unistalled y luego se instala de nuevo.
- Error después de actualizar la AppCompat de Android.Support Library v7 a la versión 21.0.3
- Salida de depuración extraña en la aplicación desde la actualización a Visual Studio 2017 15.3.0
- Programe la notificación usando el administrador de alarmas en formularios xamarin para android
- ¿Cómo se actualiza a Android SDK 25.1.3?
- ParseInstallation.SaveAsync () que causa UnhandledException en formularios Xamarin Android
- Eliminar listview en xamarin android
- IronPython en Xamarin
Eso depende de qué datos desea recuperar. Para los objetos, mira esta respuesta de Stuart.
Y cuando quiera enviar / recuperar datos que no sean objetos, puede hacerlo con la construcción en viewmodel-navigation como el siguiente ejemplo:
// Navigate to viewmodel with parameters var param = new Dictionary<string, string> { {"key1", "value for key 1" {"key2", 12} }; ShowViewModel<MyViewModel>(param);
Y luego recuperar los parámetros en su MyViewModel
:
protected override void InitFromBundle(IMvxBundle parameters) { if (parameters.Data.ContainsKey("key1")) { var mykey1value = parameters.Data["key1"] } // And so on base.InitFromBundle(parameters); }
Con MvvmCross 5 puede utilizar IMvxNavigationService
Por ejemplo, usted tiene FooViewModel
y BarViewModel
public class FooViewModel : MvxViewModel {} public class BarViewModel : MvxViewModel<DataParameter> {}
y desea pasar algunos datos de FooVM a BarVM. Como puede ver, BarViewModel hereda de MvxViewModel con DataParameter como un tipo genérico. Esta clase describe los datos que queremos lanzar a BarViewModel.
public class DataParameter { public string Name { get; set; } }
Ahora puede utilizar IMvxNavigationService
en FooViewModel
así:
await Mvx.Resolve<IMvxNavigationService>.Navigate<BarViewModel, DataParameter>(new DataParameter{ Name = "Alex" })
y capturar los datos en el siguiente método:
public override Task Initialize(DataParameter parameter) { }
- ¿Cómo obtengo la dirección MAC y el dispositivo Android con 6.0 o superior en c #?
- Android Action Bar: ¿Puedo reemplazar un título personalizado en appcompat v7?