首页 文章

以编程方式将系列添加到OxyPlot图表:不显示任何内容

提问于
浏览
1

我正在尝试在我设置图表类型的场景中使用OxyPlot,然后以编程方式添加一个或多个系列 . 为此:

在XAML视图中

  • ,我只需添加 PlotView 控件 .
    在代码中
  • ,我的类有 PlotModel 属性(通知更改)和 AddSeries 方法 . 每当调用它时,我设置绘图模型(如果尚未配置)(我创建一个新的 PlotModel 对象并添加 LinearAxis ),创建随机数据 LineSeries ,并将其添加到绘图模型的 Series 集合中 . 最后,我在它上面调用 InvalidatePlot(true) 来强制它重绘 .

然而,当我执行这段代码时没有显示任何错误 .

我google了一下,但我发现的唯一代码示例是指XAML视图绑定到绑定数据源的典型场景;但是这里我每次都根据图表类型和系列计数重新创建PlotModel . 你可以在这里找到一个虚拟的repro解决方案:http://1drv.ms/1R8EFBc . 只需编译并运行,然后单击添加系列 . 有人可以提出解决方案吗?

1 回答

  • 2

    由于以下原因,绑定属性 PlotModel 永远不会更新:

    private void SetupPieChart()
    {
        if (_plot == null) _plot = new PlotModel();
        else _plot.Axes.Clear();
    }
    

    更改为以下,它应该工作:

    private void SetupPieChart()
    {
        if (PlotModel == null) PlotModel = new PlotModel();
        else PlotModel.Axes.Clear();
    }
    

    自:

    private PlotModel _plot;
    public PlotModel PlotModel
    {
        get { return _plot; }
        set
        {
            _plot = value;
            OnPropertyChanged(); // <=== update here
        }
    }
    

相关问题