Binding.Source Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia obiekt do użycia jako źródło powiązania.
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
Wartość właściwości
Obiekt, który ma być używany jako źródło powiązania.
Przykłady
W poniższym przykładzie użyto Person
obiektu z właściwością ciągu o nazwie PersonName
, która jest zdefiniowana w SDKSample
przestrzeni nazw, jak pokazano w pierwszym wyróżnionym wierszu. W wyróżnionym wierszu zawierającym <src>
element tworzy wystąpienie Person
obiektu z wartością PersonName
Joe
właściwości . Odbywa się to w Resources
sekcji i przypisano element 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>
Wyróżniony wiersz zawierający <TextBlock>
elementy pokazuje sposób powiązania z właściwością PersonName
. W związku z tym kontrolka TextBlock jest wyświetlana z wartością "Joe".
W poniższym przykładzie Source wartości Binding obiektów są ustawione na static
właściwość 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>
Pełny przykład można znaleźć w temacie Data Binding Demo (Pokaz powiązania danych).
Uwagi
Domyślnie powiązania dziedziczą kontekst danych określony przez DataContext
właściwość , jeśli został ustawiony. Jednak Source właściwość jest jednym ze sposobów jawnego Binding ustawienia źródła i przesłaniania dziedziczonego kontekstu danych. Jeśli nie potrzebujesz funkcji ustanawiania zakresu, w którym kilka właściwości dziedziczy ten sam kontekst danych, możesz użyć Source właściwości zamiast DataContext
właściwości .
Właściwości Binding.ElementName i Binding.RelativeSource umożliwiają również jawne ustawienie źródła powiązania. Jednak tylko jedna z trzech właściwości , ElementName, Sourcei RelativeSourcepowinna być ustawiona dla każdego powiązania lub może wystąpić konflikt. Ta właściwość zgłasza wyjątek, jeśli występuje konflikt źródła powiązania.
Aby wyczyścić tę właściwość, ustaw ją na DependencyProperty.UnsetValue.
Użycie atrybutu języka XAML
<object Source="object"/>
Wartości XAML
Obiektu
Istniejący obiekt. Aby odwołać się do istniejącego obiektu, użyj rozszerzenia znaczników StaticResource