Binding.Source Binding.Source Binding.Source 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

Eigenschaftswert

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

Beispiele

Im folgenden Beispiel wird eine Person Objekt mit einer Zeichenfolgeneigenschaft, die mit dem Namen PersonName , definiert ist, der SDKSample Namespace, als das 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 hervorgehobenen Zeile mit der <src> -Element, es instanziiert die Person Objekt mit einer PersonName Eigenschaftswert Joe.In the highlighted line that contains the <src> element, it instantiates the Person object with a PersonName property value of Joe. Dies erfolgt in der Resources Abschnitt zugewiesen, und wählen Sie eine x:Key.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 mit der <TextBlock> Elemente wird gezeigt, wie zum Binden an die PersonName Eigenschaft.The highlighted line that contains the <TextBlock> elements shows how to bind to the PersonName property. Daher die TextBlock Steuerelement angezeigt wird, mit dem Wert "Joe".As a result, the TextBlock control appears with the value "Joe".

Im folgenden Beispiel die Source Werte der Binding Objekte werden festgelegt, um die static Eigenschaft Application.Current: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 die Bindungen den Datenkontext, der gemäß der DataContext -Eigenschaft, wenn eine festgelegt wurde.By default, bindings inherit the data context specified by the DataContext property, if one has been set. Allerdings die Source Eigenschaft ist eine der Möglichkeiten, Sie explizit, die Quelle des festlegen können, eine Binding und den geerbten Datenkontext zu überschreiben.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 nicht benötigen, dass die Funktionalität der Einrichtung eines Bereichs erbt die mehrere Eigenschaften denselben Datenkontext, können Sie verwenden die Source -Eigenschaft anstelle der DataContext Eigenschaft.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 und Binding.RelativeSource Eigenschaften ermöglichen es Ihnen auch die Quelle der Bindung festgelegt explizit.The Binding.ElementName and Binding.RelativeSource properties also enable you to set the source of the binding explicitly. Allerdings nur eine der drei Eigenschaften ElementName, Source, und RelativeSourcesollten werden für jede Bindung festgelegt oder ein Konflikt kann 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 Bindung Quellkonflikt vorliegt.This property throws an exception if there is a binding source conflict.

Um diese Eigenschaft deaktivieren, legen Sie ihn auf DependencyProperty.UnsetValue.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. Verwenden Sie zum Verweisen auf ein vorhandenes Objekt die StaticResource-MarkuperweiterungTo refer to an existing object, use the StaticResource Markup Extension

Gilt für: