WPF/Silverlight には、ObservableCollection という特別な汎用コレクションクラスがあります。このコレクションは、項目が追加または削除されたり、リスト全体が更新される場合に、更新に関する通知を提供します。このクラスのインスタンスをチャートのデータソースとして使用すると、チャートはコレクション内で行われた変更を自動的に反映します。
コードで、System.Collections.ObjectModel 名前空間をページ(および C1.WPF.C1Chart または C1.Silverlight.C1Chart)に追加します。これには ObservableCollection が含まれます。
次に、Point 型の ObservableCollection を宣言します。これがチャートのデータソースになります。
C# |
コードのコピー
|
---|---|
ObservableCollection<Point> points = new ObservableCollection<Point>();
|
設定済みのすべてのチャートデータ(存在する場合)をクリアしてから、ポイントコレクションにダミーデータを挿入します。
C# |
コードのコピー
|
---|---|
//チャートデータをクリアします c1Chart1.Data.Children.Clear(); //ダミーデータを作成します points.Add(new Point(0, 20)); points.Add(new Point(1, 22)); points.Add(new Point(2, 19)); points.Add(new Point(3, 24)); points.Add(new Point(4, 29)); points.Add(new Point(5, 7)); points.Add(new Point(6, 12)); points.Add(new Point(7, 15)); |
次に、このコレクションに連結された XYDataSeries を作成し、チャートに追加します。
C# |
コードのコピー
|
---|---|
//C1Chart データ系列を設定します XYDataSeries ds = new XYDataSeries(); ds.Label = "Series 1"; //データ系列をコレクションに連結します ds.ItemsSource = points; //ItemsSource を使用する場合は、連結を設定することが重要です ds.ValueBinding = new Binding("Y"); ds.XValueBinding = new Binding("X"); //データ系列をチャートに追加します c1Chart1.Data.Children.Add(ds); |
ポイントのコレクションをデータ系列の ItemsSource に直接連結することができます。また、Point オブジェクトの X および Y フィールドに ValueBinding (Y) と XValueBinding を指定することも重要です。カスタムビジネスオブジェクトの場合と同様に、データ系列の値を目的のフィールドに連結する必要があります。その後、データ系列をチャートのデータコレクションに追加します。この方法によれば、複数のデータ系列を簡単に追加できます。