Sdílet prostřednictvím


Binding.Source Vlastnost

Definice

Získá nebo nastaví objekt použít jako zdroj vazby.

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

Hodnota vlastnosti

Objekt, který se má použít jako zdroj vazby.

Příklady

Následující příklad používá Person objekt s vlastností řetězce s názvem PersonName , která je definovaná SDKSample v oboru názvů, jak ukazuje první zvýrazněný řádek. Ve zvýrazněné řádku, který obsahuje <src> element, vytvoří instanci objektu PersonPersonName s hodnotou Joevlastnosti . Provede se to v oddílu Resources a přiřadí se mu 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>

Zvýrazněný řádek, který obsahuje <TextBlock> prvky, ukazuje, jak vytvořit vazbu na PersonName vlastnost . V důsledku toho TextBlock se ovládací prvek zobrazí s hodnotou "Joe".

V následujícím příkladu Source jsou hodnoty Binding objektů nastaveny na static vlastnost 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>

Úplný příklad najdete v tématu Ukázka datové vazby.

Poznámky

Ve výchozím nastavení vazby dědí kontext dat určený DataContext vlastností , pokud byl nastaven. Vlastnost je však jedním ze způsobů, Source jak můžete explicitně nastavit zdroj objektu Binding a přepsat kontext zděděných dat. Pokud nepotřebujete funkci vytvoření oboru, ve kterém několik vlastností dědí stejný kontext dat, můžete místo DataContext vlastnosti použít Source vlastnost .

Vlastnosti Binding.ElementName a Binding.RelativeSource také umožňují explicitně nastavit zdroj vazby. Pro každou vazbu by však měla být nastavena pouze jedna ze tří vlastností ElementName, Source, a RelativeSource, jinak může dojít ke konfliktu. Tato vlastnost vyvolá výjimku, pokud dojde ke konfliktu zdroje vazby.

Pokud chcete tuto vlastnost vymazat, nastavte ji na DependencyProperty.UnsetValue.

Použití atributu XAML

<object Source="object"/>  

Hodnoty XAML

Objekt
Existující objekt. Pokud chcete odkazovat na existující objekt, použijte rozšíření značek StaticResource.

Platí pro