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, který se má 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 řetězcovou vlastností definovanou PersonName v SDKSample oboru názvů, jak ukazuje první zvýrazněný řádek. Ve zvýrazněné čáře, která obsahuje <src> prvek, vytvoří Person instanci objektu PersonName s hodnotou Joevlastnosti . To se provádí v oddílu Resources a přiřazeno 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 obsahující <TextBlock> prvky ukazuje, jak vytvořit vazbu k PersonName vlastnosti. 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>
Poznámky
Vazby ve výchozím nastavení dědí kontext dat určený DataContext vlastností, pokud byla nastavena. Vlastnost je však jedním ze způsobů, Source jak explicitně nastavit zdroj Binding a přepsat zděděný kontext dat. Pokud nepotřebujete funkci vytvoření oboru, ve kterém několik vlastností dědí stejný datový kontext, můžete místo vlastnosti použít Source vlastnost DataContext .
Binding.RelativeSource Vlastnosti Binding.ElementName také umožňují explicitně nastavit zdroj vazby. Pro každou vazbu by však měla být nastavena pouze jedna ze tří vlastností, ElementNameSourceRelativeSourcea to nebo může dojít ke konfliktu. Tato vlastnost vyvolá výjimku, pokud existuje konflikt zdroje vazby.
Pokud chcete tuto vlastnost vymazat, nastavte ji na DependencyProperty.UnsetValuehodnotu .
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.