Vinculación de OxyPlot a través de MVVMCross en Xamarin.Android

He añadido OxyPlot Android y Core en mi proyecto basado en Xamarin PCL donde estoy usando MVVMCross .

He añadido el plotview en mi xml como sigue. Pero no sé cómo vincular esta vista usando MVVMCross.

¿Hay algún buen ejemplo o recursos a seguir?

MyView.xml

 <oxyplot.xamarin.android.PlotView android:id="@+id/plot" android:layout_width="match_parent" android:layout_height="match_parent" /> 

MyView.cs

 public class MyView : MvxFragment<MyViewModel> { public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var ignored = base.OnCreateView(inflater, container, savedInstanceState); var view = this.BindingInflate(Resource.Layout.MyView, null) MyViewModel MyMainViewModel = new MyViewModel(); var a = view.FindViewById<PlotView>(Resource.Id.plot); a.Model = MyViewModel.MyModel; return view; } } 

MyViewModel.cs

 public PlotModel MyModel { get; set; } public MyViewModel { PlotModel mo = new PlotModel(); var s1 = new LineSeries() { Color = OxyColors.SkyBlue, MarkerType = MarkerType.Circle, MarkerSize = 6, MarkerStroke = OxyColors.White, MarkerFill = OxyColors.SkyBlue, MarkerStrokeThickness = 1.5 }; s1.Points.Add(new DataPoint(0, 10)); s1.Points.Add(new DataPoint(10, 40)); s1.Points.Add(new DataPoint(40, 20)); s1.Points.Add(new DataPoint(60, 30)); mo.Series.Add(s1); MyModel = mo; } 

Información adicional para la instalación de OxyPlot

He añadido OxyPlot de la siguiente manera a través de la consola de paquetes.

En el PCL

 PM> Install-Package OxyPlot.Core -Version 1.0.0-unstable1983 -Pre 

En el Android

 PM> Install-Package OxyPlot.Xamarin.Android -Pre 

O también puede agregarlos en Nuget Console desde la librería prelease.

Usted debe ser capaz de lograr lo que desea utilizando estándar Mvx vinculación de la propiedad. No se requiere un enlace personalizado.

Ejemplo basado en la pregunta:

Enfoque 1: Unión fluida

ViewModel

 public class MyViewModel : MvxViewModel { public MyViewModel() { GeneratePlotPoints(); } void GeneratePlotPoints() { var mo = new PlotModel(); var s1 = new LineSeries() { Color = OxyColors.SkyBlue, MarkerType = MarkerType.Circle, MarkerSize = 6, MarkerStroke = OxyColors.White, MarkerFill = OxyColors.SkyBlue, MarkerStrokeThickness = 1.5 }; s1.Points.Add(new DataPoint(0, 10)); s1.Points.Add(new DataPoint(10, 40)); s1.Points.Add(new DataPoint(40, 20)); s1.Points.Add(new DataPoint(60, 30)); mo.Series.Add(s1); MyModel = mo; } PlotModel _myModel; public PlotModel MyModel { get { return _myModel; } set { SetProperty(ref _myModel, value); } } } 

Ver / Diseño

 <oxyplot.xamarin.android.PlotView android:id="@+id/plot" android:layout_width="match_parent" android:layout_height="match_parent" /> 

Fragmento / código detrás

 public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var ignored = base.OnCreateView(inflater, container, savedInstanceState); var view = this.BindingInflate(Resource.Layout.MyView, null); var graphControl = view.FindViewById<PlotView>(Resource.Id.plot); var bindset = this.CreateBindingSet<MyView, MyViewModel>(); bindset.Bind(graphControl).For(c => c.Model).To(vm => vm.MyModel); bindset.Apply(); return view; } 

Enfoque 2: Enlace Xml

ViewModel

Lo mismo que arriba

Ver / Diseño

 <oxyplot.xamarin.android.PlotView android:id="@+id/plot" android:layout_width="match_parent" android:layout_height="match_parent" local:MvxBind="Model MyModel"/> 

Fragmento / Código detrás

No es necesario un código de enlace, sólo asegúrese de ejecutar el diseño a través del inflador de encuadernación.

 public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var ignored = base.OnCreateView(inflater, container, savedInstanceState); return this.BindingInflate(Resource.Layout.MyView, null); } 
  • NullReferenceException en la puesta en marcha de la aplicación Xamarin Droid
  • Cómo utilizar Android KitKat EvaluateJavascript en Xamarin.Android/Monodroid y recuperar el resultado?
  • MonoDroid: Controlador de errores global
  • Xamarin tiempo de ejecución vs Dalvik
  • Uso de Android ActionBar para navegar entre las actividades
  • Error al utilizar la Biblioteca de asistencia de Android v4
  • En XNA a Mono Android Conversiones: ¿Qué es una manera simple (o la más simple) de manejar el ciclo de vida de la actividad?
  • Mono.Data.Sqlite.SqliteConnection.SetConfig lanza una biblioteca utilizada incorrectamente excepción
  • Desarrollo de la aplicación C # móvil para ejecutarse en múltiples plataformas
  • Agregando $ ANDROID_HOME / tools a $ Path en ventanas
  • Registrar ContentObserver en Application.OnCreate () Servicio VS
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.