Binding.Source Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt het object opgehaald of ingesteld voor gebruik als bindingsbron.
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
Waarde van eigenschap
Het object dat moet worden gebruikt als bindingsbron.
Voorbeelden
In het volgende voorbeeld wordt een Person object gebruikt met een tekenreekseigenschap die PersonName is gedefinieerd in de SDKSample naamruimte, zoals in de eerste gemarkeerde regel wordt weergegeven. In de gemarkeerde regel die het <src> element bevat, wordt het Person object geïnstitueert met een PersonName eigenschapswaarde van Joe. Dit wordt gedaan in de Resources sectie en een 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>
De gemarkeerde lijn die de <TextBlock> elementen bevat, laat zien hoe u verbinding maakt met de PersonName eigenschap. Als gevolg hiervan wordt het TextBlock besturingselement weergegeven met de waarde 'Joe'.
In het volgende voorbeeld worden de Source waarden van de Binding objecten ingesteld op de static eigenschap 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>
Opmerkingen
Standaard nemen bindingen de gegevenscontext over die is opgegeven door de DataContext eigenschap, als deze is ingesteld. De Source eigenschap is echter een van de manieren waarop u expliciet de bron van een Binding gegevenscontext kunt instellen en de overgenomen gegevenscontext kunt overschrijven. Als u niet de functionaliteit nodig hebt om een bereik tot stand te brengen waarin verschillende eigenschappen dezelfde gegevenscontext overnemen, kunt u de Source eigenschap gebruiken in plaats van de DataContext eigenschap.
Met de Binding.ElementName en Binding.RelativeSource eigenschappen kunt u ook expliciet de bron van de binding instellen. Er moet echter slechts één van de drie eigenschappen, ElementName, Sourceen RelativeSource, worden ingesteld voor elke binding, of er kan een conflict optreden. Deze eigenschap genereert een uitzondering als er een bindingsbronconflict is.
Als u deze eigenschap wilt wissen, stelt u deze in op DependencyProperty.UnsetValue.
XAML-kenmerkgebruik
<object Source="object"/>
XAML-waarden
Object Een bestaand object. Als u naar een bestaand object wilt verwijzen, gebruikt u de staticResource Markup-extensie