Xamarin Android Oxyplot 刷新不起作用

Xamarin Android Oxyplot refresh doesnt work

我在 Xamarin 中刷新 Oxyplot 图时遇到问题 Android。我正在使用 Model.InvalidatePlot(true) 但仍然不起作用。

在我的 ViewModel 中,我有 属性 PlotModel 和刷新方法,如下面的代码。 GroupSales 是我的 GroupSale 的 MvxObservableCollection。

    public void RefreshTest()
        {
            GroupSales.Clear();
            var groupSales = DemoData.GetGroupSaleList(_shop.Id);

            groupSales.Add(new GroupSale()
            {
                Name = "Test",
                Sum = 5555,
                Color = Constants.DefaultColor
            });

            foreach (var item in groupSales)
            {
                GroupSales.Add(item);
            }

            Model = OxyPlotModelCreator.GetGroupSalesModel(GroupSales);
            Model.InvalidatePlot(true);
        }

private PlotModel _model;
        public PlotModel Model
        {
            get { return _model; }
            set
            {
                _model = value;
                RaisePropertyChanged(() => Model);
            }
        }

在调用 RefreshTest 方法后,我的 MvxObservableCollection 和 Model 也更新了,但在视图中看起来仍然相同。仅当我更改移动方向时才会更新(因为我使用纵向和横向两个视图,因此再次初始化)但我需要在单击“刷新”按钮后刷新 PlotModel。

我已经尝试在 Android 片段和 Invalidete PlotView 和模型中调用此方法,如下所示:

Button button = _view.FindViewById<Button>(Resource.Id.refreshButton);
            button.Click += delegate
            {
                ViewModel.RefreshTest();
                if (plotView != null && ViewModel.Model != null)
                {
                    plotView.InvalidatePlot(true);
                    plotView.Invalidate();
                    plotView.RefreshDrawableState();
                    plotView.Model.InvalidatePlot(true);
                }
            };

但还是不行....有人可以帮我吗?

编辑

我在 Fragment 中初始化模型是这样的:

 var plotView = _view.FindViewById<PlotView>(Resource.Id.groupSalesModel);
            if (plotView != null && ViewModel.Model != null)
            {
                plotView.Model = ViewModel.Model;
            }

哦,我知道了...我只是像这样绑定片段:

  var bindset = this.CreateBindingSet<GroupSalesFragment, GroupSalesViewModel>();
            bindset.Bind(plotView).For(c => c.Model).To(vm => vm.Model);
            bindset.Apply();

现在可以使用了....