Binding.Source Property

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

Property Value

Object

Das Objekt, das als Bindungsquelle verwendet werden soll.The object to use as the binding source.

Examples

Im folgenden Beispiel wird ein Person-Objekt mit einer Zeichen folgen Eigenschaft namens PersonName verwendet, die im SDKSample-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, in der das <src>-Element enthalten ist, wird das Person-Objekt mit dem PersonName-Eigenschafts Wert Joeinstanziiert.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 es wurde ein 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 hervorgehobene Zeile, die die <TextBlock> Elemente enthält, zeigt, wie Sie eine Bindung an die Eigenschaft PersonName herstellen.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 die Source Werte der Binding-Objekte auf die static-Eigenschaften 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.

Remarks

Standardmäßig erben Bindungen den Datenkontext, der durch die DataContext-Eigenschaft festgelegt ist, sofern eine solche 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 Eigenschaften Binding.ElementName und Binding.RelativeSource 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 nur eine der drei Eigenschaften, ElementName, Sourceund RelativeSource, für jede Bindung 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 Sie auf DependencyProperty.UnsetValuefest.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

Applies to