Freigeben über


Binding Klasse

Definition

Definiert eine Bindung, die die Eigenschaften von Bindungszielen und Datenquellen verbindet.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Binding : BindingBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Binding : BindingBase
Public Class Binding
Inherits BindingBase
<Binding .../>
- or -
<dependencyobject dependencyproperty="{Binding bindingArgs}" />
Vererbung
Object IInspectable DependencyObject BindingBase Binding
Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine Bindung in XAML erstellt wird. Die vollständige Codeauflistung finden Sie im XAML-Datenbindungsbeispiel.

<StackPanel Margin="5">

  <TextBlock Text="Name:" Style="{StaticResource DescriptionTextStyle}" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <TextBox Text="{Binding Path=Name, Mode=TwoWay}" 
    Width="350" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <TextBlock Text="Organization:" Style="{StaticResource DescriptionTextStyle}" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <!-- You can omit the 'Path=' portion of the binding expression. --> 
  <TextBox Text="{Binding Organization, Mode=TwoWay}" Width="350" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

</StackPanel>

Der folgende Beispielcode veranschaulicht, wie eine Bindung im Code erstellt wird.

// Create the source string.
string s = "Hello";

// Create the binding description.
Binding b = new Binding();
b.Mode = BindingMode.OneTime;
b.Source = s;

// Attach the binding to the target.
TextBlock MyText = new TextBlock();
MyText.SetBinding(TextBlock.TextProperty, b);
// Create the source string.
String^ s = ref new String(L"Hello");

// Create the binding description.
Binding^ b = ref new Binding();
b->Mode = BindingMode::OneTime;
b->Source = s;

// Attach the binding to the target.
TextBlock^ MyText = ref new TextBlock();
MyText->SetBinding(MyText->TextProperty, b);

Hinweise

Mit der {Binding}-Markuperweiterung können Sie einen Bindungswert als einzelne Attributzeichenfolge in XAML angeben, einschließlich des Festlegens von Bindungseigenschaften wie Pfad und Quelle. Weitere Informationen zu Konzepten der Datenbindung finden Sie unter Datenbindungstiefe.

Die Binding-Klasse kann als CodeBehind-Belichtung der {Binding}-Markuperweiterung betrachtet werden. Wenn eine Bindung bereits auf ein Ziel angewendet wird (was beim Laden des XAML geschieht), können Sie die Lese-/Schreibeigenschaften eines Binding-Objekts nicht so festlegen, wie sich eine Bindung zur Laufzeit verhält. Jede XAML-definierte Bindung sollte als unveränderlich betrachtet werden. Sie können jedoch mithilfe von FrameworkElement.SetBinding ein neues Binding-Objekt erstellen, dessen Eigenschaften festlegen und eine neue Bindung für ein bestimmtes Benutzeroberflächenelementziel einrichten. Weitere Informationen finden Sie unter Erstellen von Bindungen im Code.

Ein Binding-Objekt verbindet eine Abhängigkeitseigenschaft eines FrameworkElement direkt mit einem Datenobjekt, sodass Aktualisierungen des Datenobjekts automatisch an die Eigenschaft weitergegeben werden, die Datenbindung verwendet. Die Binding-Klasse definiert die Eigenschaften einer Bindung. Jede Bindung muss über ein Zielelement, eine Zieleigenschaft und eine Datenquelle verfügen, obwohl einige Werte standardmäßig bereitgestellt werden, wenn Sie sie nicht angeben.

Um eine Bindung an eine Eigenschaft oder eine Untereigenschaft für ein Datenobjekt zu erstellen, legen Sie die Path-Eigenschaft des Binding-Objekts fest. Weitere Informationen zum Festlegen des Pfads im Code oder in XAML finden Sie unter Eigenschaftenpfadsyntax oder {Binding}-Markuperweiterung.

Sie können eine instance einer Binding-Klasse auf mehrere Ziele anwenden. Sie können die Eigenschaftswerte eines Binding-Objekts jedoch nicht ändern, nachdem Sie es an ein Zielelement angefügt haben.

Hinweis

Durch Das Aufrufen der FrameworkElement.SetBinding-Methode und das Übergeben eines neuen Binding-Objekts wird eine vorhandene Bindung nicht unbedingt entfernt. Stattdessen sollten Sie die DependencyObject.ClearValue(DependencyProperty) -Methode verwenden.

Weitere Informationen zur Verwendung von XAML-Attributen für Eigenschaften, die eine Bindung annehmen können oder die andernfalls auf einen datengebundenen Wert festgelegt werden können, finden Sie unter {Binding}-Markuperweiterung.

Die als Ziel einer Datenbindung verwendete Eigenschaft muss eine Abhängigkeitseigenschaft sein. Weitere Informationen finden Sie unter Übersicht über Abhängigkeitseigenschaften.

Konstruktoren

Binding()

Initialisiert eine neue instance der Binding-Klasse.

Eigenschaften

Converter

Ruft das Konverterobjekt ab, das von der Bindungs-Engine aufgerufen wird, um die Daten zu ändern, während sie zwischen der Quelle und dem Ziel übergeben werden oder umgekehrt.

ConverterLanguage

Ruft einen Wert ab, der die Sprache benennt, die an einen beliebigen Konverter übergeben werden soll, der durch die Converter-Eigenschaft angegeben wird, oder legt diesen fest.

ConverterParameter

Ruft einen Parameter ab, der in der Konverterlogik verwendet werden kann, oder legt diesen fest.

Dispatcher

Gibt immer in einer Windows App SDK-App zurücknull. Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft den DispatcherQueue ab, dem dieses Objekt zugeordnet ist. Stellt DispatcherQueue eine Funktion dar, die auf den DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird.

(Geerbt von DependencyObject)
ElementName

Ruft den Namen des Elements ab, das als Bindungsquelle für die Bindung verwendet werden soll, oder legt diesen fest.

FallbackValue

Ruft den Wert ab, der verwendet werden soll, wenn die Bindung keinen Wert zurückgeben kann, oder legt diesen fest.

Mode

Ruft einen Wert ab, der die Richtung des Datenflusses in der Bindung angibt, oder legt diesen Wert fest.

Path

Ruft den Pfad zur Bindungsquelleneigenschaft fest ab oder legt diesen fest.

RelativeSource

Ruft die Bindungsquelle ab, indem deren Speicherort relativ zur Position des Bindungsziels angegeben wird, oder legt diese fest. Dies wird am häufigsten in Bindungen innerhalb von XAML-Steuervorlagen verwendet.

Source

Ruft die Datenquelle für die Bindung ab oder legt sie fest.

TargetNullValue

Ruft den Wert ab, der im Ziel verwendet wird, wenn der Wert der Quelle NULL ist, oder legt diesen fest.

UpdateSourceTrigger

Ruft einen Wert ab, der das Timing von Bindungsquellupdates für bidirektionale Bindungen bestimmt, oder legt diesen fest.

Methoden

ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft festgelegt wurde, was in Fällen gilt, in denen eine Animation nicht aktiv ist.

(Geerbt von DependencyObject)
GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück.

(Geerbt von DependencyObject)
ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt ist.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance.

(Geerbt von DependencyObject)
SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest.

(Geerbt von DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Bricht eine Änderungsbenachrichtigung ab, die zuvor registriert wurde, indem RegisterPropertyChangedCallback aufgerufen wurde.

(Geerbt von DependencyObject)

Gilt für:

Weitere Informationen