Binding.Source Eigenschaft
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.
Ruft das Objekt ab oder legt es fest, das als Bindungsquelle verwendet werden soll.
public:
property System::Object ^ Source { System::Object ^ get(); void set(System::Object ^ value); };
public object Source { get; set; }
member this.Source : obj with get, set
Public Property Source As Object
Eigenschaftswert
Das Objekt, das als Bindungsquelle verwendet werden soll.
Beispiele
Im folgenden Beispiel wird ein Person
-Objekt mit einer Zeichenfolgeneigenschaft namens PersonName
verwendet, die SDKSample
im Namespace definiert ist, wie die erste hervorgehobene Zeile zeigt. In der hervorgehobenen Zeile, die das <src>
-Element enthält, instanziiert sie das -Objekt mit dem Person
PersonName
Eigenschaftswert .Joe
Dies erfolgt im Resources
-Abschnitt und wird einem x:Key
zugewiesen.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:SDKSample"
SizeToContent="WidthAndHeight"
Title="Simple Data Binding Sample">
<Window.Resources>
<src:Person x:Key="myDataSource" PersonName="Joe"/>
<Style TargetType="{x:Type Label}">
<Setter Property="DockPanel.Dock" Value="Top"/>
<Setter Property="FontSize" Value="12"/>
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="25"/>
<Setter Property="DockPanel.Dock" Value="Top"/>
</Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="25"/>
<Setter Property="DockPanel.Dock" Value="Top"/>
<Setter Property="Padding" Value="3"/>
</Style>
</Window.Resources>
<Border Margin="5" BorderBrush="Aqua" BorderThickness="1" Padding="8" CornerRadius="3">
<DockPanel Width="200" Height="100" Margin="35">
<Label>Enter a Name:</Label>
<TextBox>
<TextBox.Text>
<Binding Source="{StaticResource myDataSource}" Path="PersonName"
UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>
</TextBox>
<Label>The name you entered:</Label>
<TextBlock Text="{Binding Source={StaticResource myDataSource}, Path=PersonName}"/>
</DockPanel>
</Border>
</Window>
Die hervorgehobene Zeile, die die <TextBlock>
Elemente enthält, zeigt, wie an die PersonName
-Eigenschaft gebunden wird. Daher wird das TextBlock Steuerelement mit dem Wert "Joe" angezeigt.
Im folgenden Beispiel werden die Source Werte der Binding -Objekte auf die static
-Eigenschaft Application.Currentfestgelegt:
<ComboBox.IsEnabled>
<MultiBinding Converter="{StaticResource specialFeaturesConverter}">
<Binding Path="CurrentUser.Rating"
Source="{x:Static Application.Current}"/>
<Binding Path="CurrentUser.MemberSince"
Source="{x:Static Application.Current}"/>
</MultiBinding>
</ComboBox.IsEnabled>
Das vollständige Beispiel finden Sie unter Demo zur Datenbindung.
Hinweise
Standardmäßig erben Bindungen den von der DataContext
-Eigenschaft angegebenen Datenkontext, sofern ein festgelegt wurde. Die -Eigenschaft ist jedoch eine der Möglichkeiten, Source wie Sie die Quelle eines Binding explizit festlegen und den geerbten Datenkontext außer Kraft setzen können. Wenn Sie die Funktionalität zum Einrichten eines Bereichs, in dem mehrere Eigenschaften denselben Datenkontext erben, nicht benötigen, können Sie anstelle der DataContext
-Eigenschaft die Source-Eigenschaft verwenden.
Mit den Binding.ElementName Eigenschaften und Binding.RelativeSource können Sie auch die Quelle der Bindung explizit festlegen. Für jede Bindung sollte jedoch nur eine der drei Eigenschaften festgelegt werden, ElementNameSourceRelativeSourceda sonst ein Konflikt auftreten kann. Diese Eigenschaft löst eine Ausnahme aus, wenn ein Bindungsquellenkonflikt vorliegt.
Um diese Eigenschaft zu löschen, legen Sie sie auf fest DependencyProperty.UnsetValue.
Verwendung von XAML-Attributen
<object Source="object"/>
XAML-Werte
object
Ein vorhandenes Objekt. Verwenden Sie die StaticResource-Markuperweiterung, um auf ein vorhandenes Objekt zu verweisen.