【发布时间】:2016-11-13 23:23:24
【问题描述】:
我在我使用MVVMCross 的基于Xamarin PCL 的项目中添加了OxyPlot Android 和Core。
我在我的 xml 中添加了 plotview,如下所示。但我不知道如何使用 MVVMCross 绑定这个视图。
有什么好的例子或资源可以效仿吗?
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;
}
OxyPlot 安装的附加信息
我已经通过包控制台添加了 OxyPlot,如下所示。
在 PCL 中
PM> Install-Package OxyPlot.Core -Version 1.0.0-unstable1983 -Pre
在 Android 中
PM> Install-Package OxyPlot.Xamarin.Android -Pre
或者您也可以从 prelease 库中将它们添加到 Nuget 控制台中。
【问题讨论】:
-
您可能应该为此进行自定义绑定,并且每次更改模型时 (RaisePropertyChanged()) 都会使绑定的 OxyPlot 无效。至少粗略地看一下。我认为stackoverflow.com/questions/10700445/… 可以帮助你,因为你应该只需要一个单向绑定。如果您需要更多帮助,我会尝试做一个例子。
-
我已经删除并重建了我发布的代码,它就像一个魅力。但如果你能帮助我解决以下相关问题stackoverflow.com/questions/38332858/…,那将非常有帮助
标签: android xamarin xamarin.android mvvmcross oxyplot