我尝试在我设置图表类型,然后以编程方式添加一个或多个系列的方案中使用OxyPlot。为此:
PlotView
控件。PlotModel
属性(通知更改)和AddSeries
方法。每当调用它时,我设置绘图模型(如果尚未配置)(我创建一个新的PlotModel
对象并添加LinearAxis
),创建一个随机数据LineSeries
,并将其添加到Series
情节模型的集合。最后,我在其上调用InvalidatePlot(true)
以强制重绘。然而,执行此代码时没有显示任何错误。
我google了一下,但我发现的唯一代码示例是指XAML视图绑定到绑定数据源的典型场景;但是这里我每次都根据图表类型和系列计数重新创建PlotModel。你可以在这里找到一个虚拟的repro解决方案:http://1drv.ms/1R8EFBc。只需编译并运行,然后单击添加系列。有人可以提出解决方案吗?
答案 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
}
}