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, który ma być używany 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 zdefiniowanej SDKSample w 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ą PersonNameJoewł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 rezultacie 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>
Uwagi
Domyślnie powiązania dziedziczą kontekst danych określony przez DataContext właściwość, jeśli został ustawiony.
Source Jednak właściwość jest jednym ze sposobów jawnego Binding ustawienia źródła i przesłaniania odziedziczonego 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 dla każdego powiązania należy ustawić tylko jedną z trzech właściwości , ElementNameSourcei RelativeSource, lub może wystąpić konflikt. Ta właściwość zgłasza wyjątek, jeśli występuje konflikt powiązania źródła.
Aby wyczyścić tę właściwość, ustaw ją na DependencyProperty.UnsetValue.
Użycie atrybutu XAML
<object Source="object"/>
Wartości XAML
Obiektu Istniejący obiekt. Aby odwołać się do istniejącego obiektu, użyj rozszerzenia StaticResource Markup