Binding.Source Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit l’objet à utiliser comme source de liaison.
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
Valeur de propriété
Objet à utiliser comme source de liaison.
Exemples
L’exemple suivant utilise un Person objet avec une propriété de chaîne nommée PersonName définie dans l’espace SDKSample de noms, comme le montre la première ligne mise en surbrillance. Dans la ligne en surbrillance qui contient l’élément <src> , il instancie l’objet Person avec une PersonName valeur de propriété de Joe. Cette opération est effectuée dans la Resources section et affectée à un 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>
La ligne mise en surbrillance qui contient les <TextBlock> éléments montre comment établir une liaison à la PersonName propriété. Par conséquent, le TextBlock contrôle apparaît avec la valeur « Joe ».
Dans l’exemple suivant, les Source valeurs des Binding objets sont définies sur la static propriété 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>
Remarques
Par défaut, les liaisons héritent du contexte de données spécifié par la DataContext propriété, si une liaison a été définie. Toutefois, la Source propriété est l’une des façons dont vous pouvez définir explicitement la source d’un Binding contexte de données hérité et remplacer le contexte de données hérité. Si vous n’avez pas besoin de la fonctionnalité d’établissement d’une étendue dans laquelle plusieurs propriétés héritent du même contexte de données, vous pouvez utiliser la Source propriété au lieu de la DataContext propriété.
Les Binding.ElementName propriétés et Binding.RelativeSource les propriétés vous permettent également de définir explicitement la source de la liaison. Toutefois, une seule des trois propriétés, ElementName, Sourceet , et RelativeSource, doit être définie pour chaque liaison, ou un conflit peut se produire. Cette propriété lève une exception en cas de conflit de source de liaison.
Pour effacer cette propriété, définissez-la sur DependencyProperty.UnsetValue.
Utilisation des attributs XAML
<object Source="object"/>
Valeurs XAML
Objet Objet existant. Pour faire référence à un objet existant, utilisez l’extension staticResource Markup