Share via


방법: 바인딩 소스 지정

업데이트: 2007년 11월

데이터 바인딩에서 바인딩 소스 개체는 데이터를 가져온 개체를 참조합니다. 이 항목에서는 바인딩 소스를 지정하는 다양한 방법을 설명합니다.

예제

하나의 공용 소스에 여러 개의 속성을 바인딩하는 경우 DataContext 속성을 사용할 수 있습니다. 이 속성은 모든 데이터 바인딩된 속성이 공용 소스를 상속받게 되는 범위를 설정하는 편리한 방법을 제공합니다.

다음 예제에서 데이터 컨텍스트는 응용 프로그램의 루트 요소에 설정됩니다. 따라서 모든 자식 요소가 해당 데이터 컨텍스트를 상속받을 수 있습니다. 바인딩할 데이터는 사용자 지정 데이터 클래스 즉, 매핑과 incomeDataSource의 지정한 리소스 키를 통해 직접 참조되는 NetIncome에서 옵니다.

전체 코드 샘플을 보려면 데이터 흐름의 방향 및 타이밍 제어 샘플을 참조하십시오.

<Grid
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.DirectionalBinding"
  xmlns:c="clr-namespace:SDKSample"
  Name="Page1"
>
  <Grid.Resources>
    <c:NetIncome x:Key="incomeDataSource"/>
    <Style TargetType="{x:Type TextBlock}">
      <Setter Property="Padding" Value="8"/>
    </Style>
    <Style TargetType="{x:Type TextBox}">
      <Setter Property="Margin" Value="0,6,0,0"/>
    </Style>
  </Grid.Resources>
  <Grid.DataContext>
    <Binding Source="{StaticResource incomeDataSource}"/>
  </Grid.DataContext>


...


</Grid>

참고

위의 예제는 태그에서 개체를 인스턴스화하며 개체를 리소스로 사용합니다. 코드에서 이미 인스턴스화된 개체에 바인딩하려는 경우 DataContext 속성을 프로그래밍 방식으로 설정해야 합니다. 예제를 보려면 방법: XAML의 바인딩에 사용할 수 있는 데이터 만들기를 참조하십시오.

또한 개별 바인딩에서 소스를 명시적으로 지정하려는 경우 다음 옵션을 사용할 수 있습니다. 이러한 옵션은 상속된 데이터 컨텍스트보다 우선합니다.

속성

설명

Source

이 속성을 사용하여 소스를 개체의 인스턴스로 설정합니다. 여러 속성이 같은 데이터 컨텍스트를 상속 받는 범위를 설정하는 기능이 필요하지 않은 경우 DataContext 속성 대신 Source 속성을 사용할 수 있습니다. 자세한 내용은 Source를 참조하십시오.

RelativeSource

이는 바인딩 대상이 있는 위치와 상대적인 소스를 지정할 때 유용합니다. 이 속성을 사용할 수 있는 몇 가지 일반 시나리오 중 사용자 요소의 한 속성을 같은 요소의 다른 속성에 바인딩하거나 스타일 또는 템플릿에서 바인딩을 정의하는 경우가 이에 해당합니다. 자세한 내용은 RelativeSource를 참조하십시오.

ElementName

바인딩할 요소를 나타내는 문자열을 지정합니다. 이는 응용 프로그램에서 다른 요소의 속성에 바인딩하려고 할 때 유용합니다. 예를 들어 Slider를 사용하여 응용 프로그램에서 다른 컨트롤의 높이를 제어하거나 사용자 컨트롤의 Content를 사용자 ListBox 컨트롤의 SelectedValue 속성에 바인딩하려는 경우입니다. 자세한 내용은 ElementName을 참조하십시오.

참고 항목

작업

데이터 흐름의 방향 및 타이밍 제어 샘플

개념

속성 값 상속

데이터 바인딩 개요

바인딩 선언 개요

참조

FrameworkElement.DataContext

FrameworkContentElement.DataContext

기타 리소스

데이터 바인딩 샘플

데이터 바인딩 방법 항목