以编程方式将系列添加到 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 .只需编译并运行,然后单击添加系列。谁能提出解决方案?
绑定
属性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
}
}