2017-05-24 131 views
0

我一直在關注此優秀教程,發現here以瞭解如何在跟隨MVVC時使用OxyPlot創建LineSeries繪圖。我也下載了一些錯誤修正後,設法獲得了本教程的作者的源代碼以編譯和運行。 Github上的源代碼可以找到here創建Oxyplot PlotModel,可自動更新輸入的新數據

不幸的是,當代碼運行並創建圖表時,圖表不會每5秒更新一次。這是圖表在我的機器上永遠保持的狀態。它不更新:

enter image description here

這是它應該是什麼樣子,更地塊應顯示隨着時間的增加:enter image description here

現在,我已經做了我自己的一些挖掘,找出爲什麼它沒有更新。我已經添加了一些調試命令來尋找新的點是否正確添加,如下圖所示: enter image description here

我檢查了的UpdateModel被稱爲每隔5秒,並測量正確的GetUpdateData回來,那lineSerie 。在功能結束之前,點數正在增加。 InvalidatePlot也在實際的View類中被調用。

我還能做些什麼來解決這個問題嗎?謝謝

+0

當數據更新時,您是否調用OnPropertyChanged? –

+0

是的,但一開始只有一次,而不是之後數據每5分鐘更新一次。這與教程項目 – Mantracker

+0

中的行爲相同Oxyplot需要知道數據何時發生變化,也許您必須每次都調用,而不僅僅是開始。你試過了嗎? –

回答

0

我想通了。在我的XAML文件

<Window.DataContext> 
    <local:MainViewModel/> 
</Window.DataContext> 

:根據this tutorial here(創建視圖部分),我想我不得不把。但根據教程項目,你不需要它:

<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