2017-05-24 15 views
0

MVVCに続いてOxyPlotを使用してLineSeriesプロットを作成する方法を学ぶために、この優れたチュートリアルに続いてhereが見つかりました。私もダウンロードしましたが、いくつかのエラー修正の後で、チュートリアルのソースコードをコンパイルして実行することができました。 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

はい、最初は1回だけで、その後5分ごとにデータが更新されるわけではありません。これはチュートリアルプロジェクトの同じ動作です – Mantracker

+0

Oxyplotはデータがいつ変更されたかを知る必要があります。試しましたか? –

答えて

0

私はそれを考え出しました。

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

を私のXAMLファイルで:(表示セクションを作成します)this tutorial hereによると、私は私が入れていたと思いました。しかし、チュートリアルプロジェクトに応じて、あなたがそれを必要としない:local.MainViewModel行を削除

<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> 

は、問題を修正しました。私は、Viewクラスで作成された正しいPlotModelではなく、間違ったPlotModelを使っていたと思います。

関連する問題