Binding.Source Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 Person
PersonName
s hodnotou Joe
vlastnosti . 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.