Binding.Source Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta l'oggetto da usare come origine di associazione.
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
Valore della proprietà
Oggetto da usare come origine di associazione.
Esempio
Nell'esempio SDKSample
seguente viene usato un Person
oggetto con una proprietà stringa denominata PersonName
definita nello spazio dei nomi, come mostra la prima riga evidenziata. Nella riga evidenziata contenente l'elemento, crea un'istanza dell'oggetto <src>
Person
con un PersonName
valore di proprietà di Joe
. Questa operazione viene eseguita nella Resources
sezione e assegnata a un x:Key
oggetto .
<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 riga evidenziata contenente gli <TextBlock>
elementi mostra come associare alla PersonName
proprietà. Di conseguenza, il TextBlock controllo viene visualizzato con il valore "Joe".
Nell'esempio seguente i Source valori degli Binding oggetti vengono impostati sulla static
proprietà 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>
Per l'esempio completo, vedere Demo data binding.
Commenti
Per impostazione predefinita, le associazioni ereditano il contesto di dati specificato dalla DataContext
proprietà, se è stato impostato. Tuttavia, la Source proprietà è uno dei modi in cui è possibile impostare in modo esplicito l'origine di un Binding oggetto e eseguire l'override del contesto di dati ereditato. Se non è necessaria la funzionalità di stabilire un ambito in cui diverse proprietà ereditano lo stesso contesto di dati, è possibile usare la proprietà anziché la SourceDataContext
proprietà.
Le Binding.ElementName proprietà e Binding.RelativeSource consentono anche di impostare l'origine dell'associazione in modo esplicito. Tuttavia, solo una delle tre proprietà, ElementName, Sourcee RelativeSource, deve essere impostata per ogni associazione o può verificarsi un conflitto. Questa proprietà genera un'eccezione se si verifica un conflitto di origine di associazione.
Per cancellare questa proprietà, impostarla su DependencyProperty.UnsetValue.
Uso della sintassi XAML per gli attributi
<object Source="object"/>
Valori XAML
object
Oggetto esistente. Per fare riferimento a un oggetto esistente, usare l'estensione di markup StaticResource