我一直在关注这个优秀的教程here,以了解如何在跟踪MVVC时使用OxyPlot创建LineSeries图。我还下载了,并在修复了一些错误之后,设法获得作者编译和运行教程的源代码。可以找到Github上的源代码here。
不幸的是,当代码运行并且创建了图表时,图表并不像应该的那样每5秒更新一次。这就是图表在我的机器上永远的样子。它没有更新:
现在,我已经对自己进行了一些挖掘,以找出它为什么不更新。我添加了一些调试命令来查找是否正确添加了新点,如下所示:
我已经检查过每隔5秒调用一次UpdateModel,并且测量结果是从GetUpdateData正确返回的,并且lineSerie.Points计数在函数结束之前增加了。 InvalidatePlot也在实际的View类中调用。
我还能做些什么来解决这个问题吗?感谢
答案 0 :(得分:0)
我明白了。根据{{3}}(创建视图部分),我认为我必须把:
<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>
在我的XAML文件中。但是根据教程项目,你不需要它:
<Window x:Class="OxyPlotDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:oxy="http://oxyplot.org/wpf"
Title="MainWindow" Height="350" Width="525">
<Grid>
<oxy:PlotView x:Name="Plot1" Model="{Binding PlotModel}" Margin="10" Grid.Row="1">
</oxy:PlotView>
</Grid>
删除local.MainViewModel行修复了该问题。我认为它使用了错误的PlotModel,而不是在View类中创建的正确的PlotModel