Binding.Source 속성

정의

바인딩 소스로 사용할 개체를 가져오거나 설정합니다.Gets or sets the object to use as the binding source.

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

속성 값

Object

바인딩 소스로 사용할 개체입니다.The object to use as the binding source.

예제

다음 예제에서는 첫 번째 강조 표시 된 줄과 같이 SDKSample 네임 스페이스에 정의 된 PersonName 라는 문자열 속성을 사용 하 여 Person 개체를 사용 합니다.The following example uses a Person object with a string property named PersonName that is defined in the SDKSample namespace, as the first highlighted line shows. <src> 요소를 포함 하는 강조 표시 된 줄에서 JoePersonName 속성 값을 사용 하 여 Person 개체를 인스턴스화합니다.In the highlighted line that contains the <src> element, it instantiates the Person object with a PersonName property value of Joe. Resources 섹션에서 수행 되 고 x:Key할당 됩니다.This is done in the Resources section and assigned an 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>

<TextBlock> 요소를 포함 하는 강조 표시 된 줄은 PersonName 속성에 바인딩하는 방법을 보여 줍니다.The highlighted line that contains the <TextBlock> elements shows how to bind to the PersonName property. 그 결과 TextBlock 컨트롤에 "Joe" 값이 표시 됩니다.As a result, the TextBlock control appears with the value "Joe".

다음 예제에서 Binding 개체의 Source 값은 static 속성 Application.Current로 설정 됩니다.In the following example, the Source values of the Binding objects are set to the static property 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>

전체 예제는 데이터 바인딩 데모를 참조 하세요.For the full example, see Data Binding Demo.

설명

기본적으로 바인딩은 설정 된 경우 DataContext 속성으로 지정 된 데이터 컨텍스트를 상속 합니다.By default, bindings inherit the data context specified by the DataContext property, if one has been set. 그러나 Source 속성은 Binding의 소스를 명시적으로 설정 하 고 상속 된 데이터 컨텍스트를 재정의 하는 방법 중 하나입니다.However, the Source property is one of the ways you can explicitly set the source of a Binding and override the inherited data context. 여러 속성이 동일한 데이터 컨텍스트를 상속 하는 범위를 설정 하는 기능이 필요 하지 않은 경우에는 DataContext 속성 대신 Source 속성을 사용할 수 있습니다.If you do not need the functionality of establishing a scope in which several properties inherit the same data context, you can use the Source property instead of the DataContext property.

Binding.ElementNameBinding.RelativeSource 속성을 사용 하면 바인딩의 소스를 명시적으로 설정할 수도 있습니다.The Binding.ElementName and Binding.RelativeSource properties also enable you to set the source of the binding explicitly. 그러나 각 바인딩에 대해 ElementName, SourceRelativeSource의 세 가지 속성 중 하나만 설정 해야 합니다. 그렇지 않으면 충돌이 발생할 수 있습니다.However, only one of the three properties, ElementName, Source, and RelativeSource, should be set for each binding, or a conflict can occur. 이 속성에 바인딩 원본 충돌이 발생 하는 경우 예외가 throw 됩니다.This property throws an exception if there is a binding source conflict.

이 속성을 지우려면 DependencyProperty.UnsetValue로 설정 합니다.To clear this property, set it to DependencyProperty.UnsetValue.

XAML 특성 사용XAML Attribute Usage

<object Source="object"/>  

XAML 값XAML Values

objectobject
기존 개체입니다.An existing object. 기존 개체를 참조 하려면 StaticResource 태그 확장 을 사용 합니다.To refer to an existing object, use the StaticResource Markup Extension

적용 대상