Binding.Source Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define o objeto para usar como fonte de ligação.
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
Valor de Propriedade
O objeto a usar como fonte de ligação.
Exemplos
O exemplo seguinte utiliza um Person objeto com uma propriedade de cadeia chamada PersonName que está definida no SDKSample namespace, como mostra a primeira linha destacada. Na linha destacada que contém o <src> elemento, instancia o Person objeto com um PersonName valor de propriedade de Joe. Isto é feito na Resources secção e atribuído a um 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>
A linha destacada que contém os <TextBlock> elementos mostra como se ligar à PersonName propriedade. Como resultado, o controlo TextBlock aparece com o valor "Joe".
No exemplo seguinte, os Source valores dos Binding objetos são definidos para a static propriedade 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>
Observações
Por defeito, as ligações herdam o contexto de dados especificado pela DataContext propriedade, se uma tiver sido definida. No entanto, a Source propriedade é uma das formas de definir explicitamente a fonte de um Binding e sobrescrever o contexto de dados herdado. Se não precisar da funcionalidade de estabelecer um âmbito em que várias propriedades herdam o mesmo contexto de dados, pode usar a Source propriedade em vez da propriedade DataContext .
As Binding.ElementName propriedades e Binding.RelativeSource também permitem definir explicitamente a fonte da ligação. No entanto, apenas uma das três propriedades, ElementName, Source, e RelativeSource, deve ser definida para cada ligação, caso contrário pode ocorrer um conflito. Esta propriedade cria uma exceção se houver um conflito de fonte de ligação.
Para limpar esta propriedade, defina-a para DependencyProperty.UnsetValue.
Uso de atributos XAML
<object Source="object"/>
Valores XAML
Objeto Um objeto existente. Para referir-se a um objeto existente, use a Extensão de Marcação StaticResource