Show / Hide Table of Contents

Практическое руководство. Создание привязки в коде

В этом примере показано, как создать и задать Binding в коде.

Пример

FrameworkElement Класс и FrameworkContentElement предоставляют SetBinding метод. При привязке элемента, наследующего от любого из этих классов, можно вызвать SetBinding метод напрямую.

В следующем примере создается класс с именем, MyData, который содержит свойство с именем MyDataProperty.

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));
        }
    }
}

Приведенный ниже показано, как создать объект binding, чтобы указать источник привязки. В примере используется SetBinding для привязки Text свойство myText, который является TextBlock определяют, к 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);

Полный пример кода, см. в разделе только код пример привязки.

Вместо вызова метода SetBinding, можно использовать SetBinding статический метод BindingOperations класса. Следующий пример, вызовы BindingOperations.SetBinding вместо FrameworkElement.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);

См. также

  • Общие сведения о привязке данных
  • Практические руководства
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX