1

私のWindows 10 IOTコアアプリケーションは、 多くのエンティティの変更通知を収集するためにSPIを使用します。 SPIデータを取得し、データを更新し、UI要素をこのデータにバインドするためのタイマーを起動するための優れた例があります。結果は、SPIが変更されたエンティティについて何らかのデータを取得し、UIを駆動するデータが更新され、このデータにバインドされたUI要素が更新されるたびに結果が更新されます。選択された項目をリスト上で追跡するために双方向バインディングを使用して、このページに表示されるデータのサブセットを変更することもできます。次のようにただ、多くの例のようなWindows 10 IoTコア、共有SPIデータ

、私のコードが構成されています

public async void Init_SPI() 
     { 
      .... 
      periodicTimer = new Timer(this.TimerCallback, null, 0, 10); 
     } // public async void Init_SPI() 

private void TimerCallback(object state) 
     { 
      /* UI updates must be invoked on the UI thread */ 
      var task = 
      this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,() => 
      { ... update states of data that many be bound to UI element 

私の問題/質問:私は上記に基づいて、複数ページのデータを更新する方法が表示されない

、 this.variableはタイマーを起動したページのUIスレッドを参照するためです。

スタティッククラスを更新し、UIがこれらの多数の要素を追跡するように、複数のページでこの静的データを継続的にポーリングするのはあまりにも非効率的です。

私の唯一の考えは、現在、すべてのXAMLページをこれらの「仮想」ページの間にあるページとタブでコーディングすることです。これらのページの機能を分離した状態に保つために、複数のページを用意したいと思います。

SPIポートで読み取られたデータから複数のページを更新する方法についてのご意見をいただければ幸いです。

よろしく、 ジョン非常に遅く答えを

答えて

1

申し訳ありませんが、私の解決策はまだ「本物」のページを作成することです - だけで、現在表示されているページにデータを「中継します」。だからページが見えるようになったときは、{ ... update states of data [...]のコード部分の内部をページに指摘してください。 これは簡単なswitchステートメント、またはHandleSpiData(TheSpiData)メソッドを使用した単純なインターフェイス、または簡単なAction<YourSpiData>ステートメントで実現できます。

関連する問題