0

シグナル ジェネレーター プロジェクトに取り組んでいますが、Infragistics XamDataChart がどのように機能するかを理解するのが非常に難しいと感じています。

プロジェクトは WPF と MVVM モデルを使用します。MainWindow は ViewModel にバインドされ、モデル クラス (私の場合は SigGenChannel.cs) からすべてのデータを取得し、すべての信号値とタイミングと更新がモデルで行われます。クラスに戻り、現在の値 (シグナル値) を表示するテキスト フィールドがある MainWindow にずっとバインドされ、100 ミリ秒で自動更新されます。

私が持っている 2 つの値は、現在の信号値 (CurrentValue) と現在の時間 (CurrentStepTime) です。XamDataChart を使用してこれら 2 つのデータポイントをマップし、テキスト フィールドと同じレートでリフレッシュしてデータを表示するにはどうすればよいですか?信号波としてチャート上に?

ご協力ありがとうございます。特定のコード スニペットが必要な場合はお知らせください。

4

1 に答える 1

2

XamDataChart は、バインドされたコレクションが INotifyCollectionChanged を実装する場合、バインドされたコレクションの項目を変更すると、シリーズのビジュアルを自動的に更新します。「スクロール ウィンドウ」効果を表示したくない場合は、コレクションの最後に新しいポイントを追加し、コレクションの先頭からポイントを削除します。この方法では、データが右から左にスクロールするように見えます。

X 軸は TIME であるため、シリーズの設定方法には 2 つのオプションがあります。時間を文字列値として扱い、各データ ポイントが前のデータ ポイントから等距離にある CategoryXAxis を使用するか (ただし、サンプリング レートが一定の場合はこれが適切です)、一定のサンプリング レートで、時間値に相当する正確な水平方向の位置に値を表示する必要があります。いずれの場合も、データを軸の ItemsSource にバインドして、軸がアイテムの数を認識し、ラベルを取得できるようにします。CategoryXAxis の場合は、CurrentStepTime からラベルを取得する必要があることを示しますが、CategoryDateTimeXAxis の場合は、CurrentStepTime を DateTimeMemberPath に使用する必要があることを追加で指定します。

CategoryDateTimeXAxis を使用することの欠点は、CategoryXAxis よりも効率が悪いことです。そのため、一定でない時間のサンプリングが必要でない限り、後者を使用します。

いずれの場合も、ライン (または他のカテゴリ) シリーズを作成し、データを ItemsSource にバインドし、ValueMemberPath を CurrentValue に設定します。

このサンプルでさらに解明できると思います: http://www.infragistics.com/products/silverlight/sample/data-chart/#/binding-real-time-data

于 2013-05-02T05:57:06.950 に答える