以编程方式将系列添加到 OxyPlot 图表:没有显示
Adding series to OxyPlot chart programmatically: nothing displayed
我正在尝试在设置图表类型的场景中使用 OxyPlot,然后以编程方式向其中添加 1 个或多个系列。为此:
- 在XAML视图中,我简单地添加了一个
PlotView
控件。
- 在代码中,我的 class 有一个
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
}
}
我正在尝试在设置图表类型的场景中使用 OxyPlot,然后以编程方式向其中添加 1 个或多个系列。为此:
- 在XAML视图中,我简单地添加了一个
PlotView
控件。 - 在代码中,我的 class 有一个
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
}
}