方法: コードでバインディングを作成する
この例では、コードで Binding を作成して設定する方法を示します。
例
FrameworkElement クラスと FrameworkContentElement クラスのどちらでも、SetBinding
メソッドが公開されています。 これらのクラスのいずれかを継承する要素をバインドする場合は、SetBinding メソッドを直接呼び出すことができます。
次の例では、MyDataProperty
という名前のプロパティが含まれる、MyData
という名前のクラスを作成します。
public class MyData : INotifyPropertyChanged
{
private string myDataProperty;
public MyData() { }
public MyData(DateTime dateTime)
{
myDataProperty = "Last bound time was " + dateTime.ToLongTimeString();
}
public String MyDataProperty
{
get { return myDataProperty; }
set
{
myDataProperty = value;
OnPropertyChanged("MyDataProperty");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string info)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(info));
}
}
}
Public Class MyData
Implements INotifyPropertyChanged
' Events
Public Event PropertyChanged As PropertyChangedEventHandler _
Implements INotifyPropertyChanged.PropertyChanged
' Methods
Public Sub New()
End Sub
Public Sub New(ByVal dateTime As DateTime)
Me.MyDataProperty = ("Last bound time was " & dateTime.ToLongTimeString)
End Sub
Private Sub OnPropertyChanged(ByVal info As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
End Sub
' Properties
Public Property MyDataProperty As String
Get
Return Me._myDataProperty
End Get
Set(ByVal value As String)
Me._myDataProperty = value
Me.OnPropertyChanged("MyDataProperty")
End Set
End Property
' Fields
Private _myDataProperty As String
End Class
バインド オブジェクトを作成してバインドのソースを設定する方法の例を次に示します。 この例では、SetBinding を使用して、TextBlock コントロールである myText
の Text プロパティを MyDataProperty
にバインドします。
// Make a new source.
MyData myDataObject = new MyData(DateTime.Now);
Binding myBinding = new Binding("MyDataProperty");
myBinding.Source = myDataObject;
// Bind the new data source to the myText TextBlock control's Text dependency property.
myText.SetBinding(TextBlock.TextProperty, myBinding);
' Make a new source.
Dim data1 As New MyData(DateTime.Now)
Dim binding1 As New Binding("MyDataProperty")
binding1.Source = data1
' Bind the new data source to the myText TextBlock control's Text dependency property.
Me.myText.SetBinding(TextBlock.TextProperty, binding1)
完全なコード サンプルについては、コードのみのバインドのサンプルに関する記事を参照してください。
SetBinding を呼び出す代わりに、BindingOperations クラスの SetBinding 静的メソッドを使用できます。 次の例では、FrameworkElement.SetBinding の代わりに BindingOperations.SetBinding を呼び出して、myText
を myDataProperty
にバインドしています。
//make a new source
MyData myDataObject = new MyData(DateTime.Now);
Binding myBinding = new Binding("MyDataProperty");
myBinding.Source = myDataObject;
BindingOperations.SetBinding(myText, TextBlock.TextProperty, myBinding);
Dim myDataObject As New MyData(DateTime.Now)
Dim myBinding As New Binding("MyDataProperty")
myBinding.Source = myDataObject
BindingOperations.SetBinding(myText, TextBlock.TextProperty, myBinding)
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback