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

时间:2016-02-06 18:06:32

标签: c# wpf oxyplot

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

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

然而,执行此代码时没有显示任何错误。

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

1 个答案:

答案 0 :(得分: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
    }
}