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.

One Solution collect form web for “Vinculación de OxyPlot a través de MVVMCross en Xamarin.Android”

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); } 
  • Cómo reciclar / eliminar el mapa de bits utilizado por tema
  • Cómo determinar el tipo MIME de archivo en android?
  • ¿Hay posibilidad de asignar un valor a Android Button en Xamarin?
  • Registro Xamarin no manejado (Android sin capturar) excepciones
  • Mono para Android: ListView Eliminar elementos NotifyDataSet modificado
  • Instalación de Xamarin Mono para Android
  • Uso de Android ActionBar para navegar entre las actividades
  • App Crash instantáneamente sin excepción o registro (parece como xamarin / mono error)
  • Reciclaje Bitmap no libera memoria
  • ¿Cómo funciona Mono para Android?
  • ¿Cómo registrar mi propia subclase de aplicación en Xamarin.Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.