【发布时间】:2019-06-01 20:48:00
【问题描述】:
我希望能够刷新由 Oxyplot 创建的图表,但我很难做到这一点。
理论上 this.model.InvalidatePlot(true);应该更新它,但它不想。
MainPage.xaml.cs
using OxyPlot;
using OxyPlot.Axes;
using OxyPlot.Series;
namespace WeatherStation
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
this.BuildModel2();
this.BuildModel();
}
public void BuildModel()
{
this.model = new PlotModel();
LineSeries lineserie = new LineSeries();
lineserie.Points.Add(new DataPoint(0, 0));
lineserie.Points.Add(new DataPoint(1, 70));
lineserie.Points.Add(new DataPoint(2, 20));
lineserie.Points.Add(new DataPoint(3, 20));
this.model.Series.Add(lineserie);
this.model.InvalidatePlot(true);
DataContext = this;
}
public void BuildModel2()
{
this.model = new PlotModel();
LineSeries lineserie = new LineSeries();
lineserie.Points.Add(new DataPoint(0, 0));
lineserie.Points.Add(new DataPoint(1, 10));
lineserie.Points.Add(new DataPoint(2, 80));
lineserie.Points.Add(new DataPoint(3, 20));
this.model.Series.Add(lineserie);
this.model.InvalidatePlot(true);
DataContext = this;
}
public PlotModel model { get; set; }
}
}
MainPage.xaml
<Page
x:Class="WeatherStation.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:WeatherStation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:oxy="using:OxyPlot.Windows"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<oxy:PlotView Model="{Binding model, Mode=OneWay}"/>
</Grid>
</Page>
此代码背后的总体思路是绘制第一张图,然后下一张应覆盖它。如果发生这种情况,我知道我可以在未来通过触发类似的函数来更新它。
【问题讨论】:
标签: c# uwp binding datacontext oxyplot