Udostępnij za pośrednictwem


Binding.Source Właściwość

Definicja

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ą 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 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

Dotyczy