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
qui est définie dans l’espace SDKSample
de noms, comme le montre la première ligne 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 un objet est affecté à 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 en surbrillance qui contient les <TextBlock>
éléments montre comment se lier à 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>
Pour obtenir l’exemple complet, consultez Démonstration de liaison de données.
Remarques
Par défaut, les liaisons héritent du contexte de données spécifié par la DataContext
propriété, le cas échéant. Toutefois, la Source propriété est l’une des façons de définir explicitement la source d’un Binding et de 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 propriété à la Source place de la DataContext
propriété.
Les Binding.ElementName propriétés et Binding.RelativeSource vous permettent également de définir explicitement la source de la liaison. Toutefois, une seule des trois propriétés, ElementName, Sourceet RelativeSource, doit être définie pour chaque liaison, sinon un conflit peut se produire. Cette propriété lève une exception en cas de conflit source de liaison.
Pour effacer cette propriété, définissez-la sur DependencyProperty.UnsetValue.
Utilisation d'attributs XAML
<object Source="object"/>
Valeurs XAML
object
Objet existant. Pour faire référence à un objet existant, utilisez l’extension de balisage StaticResource