Freigeben über


Binding.Source Eigenschaft

Definition

Dient zum Abrufen oder Festlegen des Objekts, 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 verwendet PersonName , die SDKSample im Namespace definiert ist, wie die erste hervorgehobene Zeile zeigt. In der hervorgehobenen Zeile, die das <src> Element enthält, instanziiert es das Person Objekt mit einem PersonName Eigenschaftswert von Joe. Dies erfolgt im Resources Abschnitt und zugewiesen einem 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 Linie, die die <TextBlock> Elemente enthält, zeigt, wie eine Bindung an die PersonName Eigenschaft erfolgt. 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>

Hinweise

Standardmäßig erben Bindungen den durch die DataContext Eigenschaft angegebenen Datenkontext, wenn eine festgelegt wurde. Die Source Eigenschaft ist jedoch eine der Methoden, mit denen Sie die Quelle eines Binding geerbten Datenkontexts explizit festlegen und außer Kraft setzen können. Wenn Sie nicht die Funktionalität zum Einrichten eines Bereichs benötigen, in dem mehrere Eigenschaften denselben Datenkontext erben, können Sie die Source Eigenschaft anstelle der DataContext Eigenschaft verwenden.

Mit Binding.ElementName den Eigenschaften können Binding.RelativeSource Sie auch die Quelle der Bindung explizit festlegen. Für jede Bindung sollte jedoch nur eine der drei Eigenschaften festgelegt ElementNameSourceRelativeSourcewerden, oder ein Konflikt kann auftreten. Diese Eigenschaft löst eine Ausnahme aus, wenn ein Bindungsquellenkonflikt vorliegt.

Um diese Eigenschaft zu löschen, legen Sie sie auf DependencyProperty.UnsetValue.

Verwendung von XAML-Attributen

<object Source="object"/>

XAML-Werte

Objekt Ein vorhandenes Objekt. Verwenden Sie die StaticResource-Markuperweiterung, um auf ein vorhandenes Objekt zu verweisen.

Gilt für: