Binding Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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ück |
DispatcherQueue |
Ruft den |
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
- <xref:Microsoft.UI.Xaml.Data.BindingOperations.SetBinding(Microsoft.UI.Xaml.DependencyObject%2cMicrosoft.UI.Xaml.DependencyProperty%2cMicrosoft.UI.Xaml.Data.BindingBase)%0a(bindingoperations_setbinding_746099660.md)>
- XAML-Datenbindungsbeispiel
- Datenbindung im Detail
- Übersicht über Abhängigkeitseigenschaften
- PropertyPath-Syntax