Binding.Source Tulajdonság

Definíció

Lekéri vagy beállítja a kötés forrásaként használni kívánt objektumot.

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

Tulajdonság értéke

A kötés forrásaként használni kívánt objektum.

Példák

Az alábbi példa a Person névtérben PersonName definiált sztringtulajdonságú SDKSample objektumot használja, ahogyan az első kiemelt sor mutatja. Az elemet tartalmazó <src> kiemelt sorban az objektumot a következő tulajdonságértékkel PersonPersonNamepéldányosítjaJoe: . Ez a szakaszban történik Resources , és hozzárendel egy 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>

Az elemeket tartalmazó <TextBlock> kiemelt vonal bemutatja, hogyan kell kapcsolódni a PersonName tulajdonsághoz. Ennek eredményeként a vezérlő " TextBlock Joe" értékkel jelenik meg.

Az alábbi példában az Source objektumok értékei a Bindingstatic tulajdonságra Application.Currentvannak állítva:

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

Megjegyzések

Alapértelmezés szerint a kötések öröklik a tulajdonság által DataContext megadott adatkörnyezetet, ha be van állítva. A tulajdonság azonban az egyik módja annak, Source hogy explicit módon beállítsa a forrást Binding , és felülbírálja az örökölt adatkörnyezetet. Ha nincs szüksége olyan hatókör létrehozására, amelyben több tulajdonság örökli ugyanazt az adatkörnyezetet, a tulajdonság helyett használhatja a SourceDataContext tulajdonságot.

A Binding.ElementName tulajdonságok lehetővé Binding.RelativeSource teszik a kötés forrásának explicit beállítását is. Az egyes kötésekhez azonban csak a három tulajdonság ElementNameSourceRelativeSourceegyikét kell beállítani, vagy ütközés léphet fel. Ez a tulajdonság kivételt eredményez, ha kötési forrásütközés van.

A tulajdonság törléséhez állítsa be a következőre DependencyProperty.UnsetValue: .

XAML-attribútumok használata

<object Source="object"/>

XAML-értékek

Objektum Egy meglévő objektum. Meglévő objektumra való hivatkozáshoz használja a StaticResource Korrektúra bővítményt

A következőre érvényes: