this.UltraSparkline1.DataSource = new TestData();
this.UltraSparkline1.ValueMemberPath = "Value";
このトピックは、コード例を示して、 UltraSparkline™ コントロールをデータにバインドする方法を説明します。
以下の表に、このトピックを理解するための前提条件として求められるトピックをリストします。
UltraSparkline コントロールには、一次元データが必要です。データ セットには少なくとも 2 つの 数値 フィールドを含む必要があります。これらのデータ型要件を満たしていない場合、 UltraSparkline は空のチャートを描画します (エラーは返しません)。データ ソース フィールドのテキストを使用して、X 軸の最初と最後のラベルを表示できます。
最低要件として UltraSparkline では、コントロールをデータ コレクションのインスタンスにバインドする DataSource プロパティと、どのデータを表示するか特定する ValueMemberPath プロパティが必要です。
以下の表は、データ バインディング プロパティ設定をリストしています。
以下のコードはデータ バインディングを示します。
C# の場合:
this.UltraSparkline1.DataSource = new TestData();
this.UltraSparkline1.ValueMemberPath = "Value";
Visual Basic の場合:
Me.UltraSparkline1.DataSource = New TestData()
Me.UltraSparkline1.ValueMemberPath = "Value"
C# の場合:
public class TestData : ObservableCollection<TestDataItem>
{
public TestData()
{
Add(new TestDataItem { Label = "Label1", Value = 1 });
Add(new TestDataItem { Label = "Label2", Value = 2 });
Add(new TestDataItem { Label = "Label3", Value = 3 });
Add(new TestDataItem { Label = "Label4", Value = -4 });
Add(new TestDataItem { Label = "Label5", Value = 5 });
Add(new TestDataItem { Label = "Label6", Value = -6 });
Add(new TestDataItem { Label = "Label7", Value = 7 });
Add(new TestDataItem { Label = "Label8", Value = 8 });
Add(new TestDataItem { Label = "Label9", Value = 9 });
}
}
public class TestDataItem : INotifyPropertyChanged
{
private string _label;
public string Label
{
get { return _label; }
set { _label = value; RaisePropertyChanged("Label"); }
}
private double? _value;
public double? Value
{
get { return _value; }
set { _value = value; RaisePropertyChanged("Value"); }
}
private void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
Visual Basic の場合:
Public Class TestData
Inherits ObservableCollection(Of TestDataItem)
Public Sub New()
Add(New TestDataItem() With {.Label = "Label1", .Value = 1})
Add(New TestDataItem() With {.Label = "Label2", .Value = 2})
Add(New TestDataItem() With {.Label = "Label3", .Value = 3})
Add(New TestDataItem() With {.Label = "Label4", .Value = -4})
Add(New TestDataItem() With {.Label = "Label5", .Value = 5})
Add(New TestDataItem() With {.Label = "Label6", .Value = -6})
Add(New TestDataItem() With {.Label = "Label7", .Value = 7})
Add(New TestDataItem() With {.Label = "Label8", .Value = 8})
Add(New TestDataItem() With {.Label = "Label9", .Value = 9})
End Sub
End Class
Public Class TestDataItem
Implements INotifyPropertyChanged
Private _label As String
Public Property Label() As String
Get
Return _label
End Get
Set
_label = value
RaisePropertyChanged("Label")
End Set
End Property
Private _value As System.Nullable(Of Double)
Public Property Value() As System.Nullable(Of Double)
Get
Return _value
End Get
Set
_value = value
RaisePropertyChanged("Value")
End Set
End Property
Private Sub RaisePropertyChanged(propertyName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub
Public Event PropertyChanged As PropertyChangedEventHandler
End Class
以下のトピックでは、このトピックに関連する情報を提供しています。