3

チャートが 16000 ポイントにバインドされている場合、バインド速度が非常に遅くなります。

私はチャート(Wpfツールキット)を持っています:

<chartingToolkit:Chart ... DataContext="{Binding Data}" ... >

データはViewModelのプロパティです(私が使用するMVVMパターン):

public List<Point> Data { get { return series; } }

series はフィールドです:

private List<Point> series;

ViewModel のコンストラクターで:

for ( ... ; ...;  ... )
{
  y = ...
  series.Add(new Point((i * scale), y));
}

グラフをデータにバインドしようとすると、プログラムが約 1 ~ 2 分フリーズしてから OK になります。WinFormsで同じプログラムを作成しました-速度は完璧です。このバインドの問題を修正する方法はありますか?

4

1 に答える 1

0

最善の方法は、ポイント数を減らすことです。一般に、コントロールに多数の WPF 要素があるとパフォーマンスの問題が発生し、通常、それらの WinForm カウンター パーツは問題ないことがわかります。

グラフの場合、円と線が使用されており、WPF ツリー構造に記憶されているので、WPF が記憶している要素は 16k 以上です。代わりに、WinForms チャートを WPF に埋め込んでみることをお勧めします。キャンバスのようなもので、一度描画すると要点を忘れてしまいます....

于 2012-12-12T16:14:23.960 に答える