Binding.Source Eigenschaft

Definition

Ruft das Objekt ab oder legt es fest, das als Bindungsquelle verwendet werden soll.Gets or sets the object to use as the binding source.

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.The object to use as the binding source.

Beispiele

Im folgenden Beispiel wird ein Person -Objekt mit einer Zeichen folgen PersonName Eigenschaft namens verwendet, die SDKSample im-Namespace definiert ist, wie die erste hervorgehobene Zeile zeigt.The following example uses a Person object with a string property named PersonName that is defined in the SDKSample namespace, as the first highlighted line shows. In der markierten Zeile, die das <src> -Element enthält, wird das Person -Objekt Joemit PersonName dem-Eigenschafts Wert instanziiert.In the highlighted line that contains the <src> element, it instantiates the Person object with a PersonName property value of Joe. Dies erfolgt im Resources -Abschnitt und wird x:Keyzugewiesen.This is done in the Resources section and assigned an x:Key.

<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 markierte Zeile, die die <TextBlock> Elemente enthält, zeigt, wie eine PersonName Bindung an die-Eigenschaft erfolgen kann.The highlighted line that contains the <TextBlock> elements shows how to bind to the PersonName property. Folglich wird das TextBlock Steuerelement mit dem Wert "Joe" angezeigt.As a result, the TextBlock control appears with the value "Joe".

Im folgenden Beispiel werden Source die Werte Binding der-Objekte auf die static -Eigenschaft Application.Currentfestgelegt:In the following example, the Source values of the Binding objects are set to the static property Application.Current:

<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 für die Datenbindung.For the full example, see Data Binding Demo.

Hinweise

Standardmäßig erben Bindungen den Datenkontext, der von der DataContext -Eigenschaft angegeben wird, sofern ein solcher festgelegt wurde.By default, bindings inherit the data context specified by the DataContext property, if one has been set. Die Source -Eigenschaft ist jedoch eine der Methoden, mit denen Sie die Quelle einer Binding explizit festlegen und den geerbten Datenkontext überschreiben können.However, the Source property is one of the ways you can explicitly set the source of a Binding and override the inherited data context. Wenn Sie die Funktionalität zum Einrichten eines Bereichs, in dem mehrere Eigenschaften denselben Datenkontext erben, nicht benötigen, können Sie die Source -Eigenschaft anstelle der DataContext -Eigenschaft verwenden.If you do not need the functionality of establishing a scope in which several properties inherit the same data context, you can use the Source property instead of the DataContext property.

Die Binding.ElementName - Binding.RelativeSource Eigenschaft und die-Eigenschaft ermöglichen es Ihnen außerdem, die Quelle der Bindung explizit festzulegen.The Binding.ElementName and Binding.RelativeSource properties also enable you to set the source of the binding explicitly. Allerdings sollte für jede Bindung nur eine der ElementNamedrei SourceEigenschaften, RelativeSource, und festgelegt werden, oder es kann ein Konflikt auftreten.However, only one of the three properties, ElementName, Source, and RelativeSource, should be set for each binding, or a conflict can occur. Diese Eigenschaft löst eine Ausnahme aus, wenn ein Bindungs Quellen Konflikt vorliegt.This property throws an exception if there is a binding source conflict.

Um diese Eigenschaft zu löschen, legen Sie DependencyProperty.UnsetValueSie auf fest.To clear this property, set it to DependencyProperty.UnsetValue.

Verwendung von XAML-AttributenXAML Attribute Usage

<object Source="object"/>  

XAML-WerteXAML Values

objectobject
Ein vorhandenes-Objekt.An existing object. Um auf ein vorhandenes Objekt zu verweisen, verwenden Sie die statikresource-Markup Erweiterung .To refer to an existing object, use the StaticResource Markup Extension

Gilt für: