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

本文关键字:图表 显示 任何内 OxyPlot 方式 编程 系列 添加 | 更新日期: 2023-09-27 18:33:33

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

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

但是,当我执行此代码时,不会显示任何内容,这不会引发任何错误。

我用谷歌搜索了一下,但我找到的唯一代码示例是指 XAML 视图绑定到绑定数据源的典型方案;但在这里,我每次都会根据图表类型和序列计数重新创建 PlotModel。您可以在此处找到虚拟复制解决方案: http://1drv.ms/1R8EFBc .只需编译并运行,然后单击添加系列。谁能提出解决方案?

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

绑定

属性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
    }
}