Binding.Source Eigenschaft

Definition

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 PersonPersonName 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.

Gilt für: