문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

FrameworkElement.DataContext 속성

FrameworkElement 가 데이터 바인딩에 참여하는 경우 해당 데이터 컨텍스트를 가져오거나 설정합니다.

네임스페이스:  System.Windows
어셈블리:  System.Windows(System.Windows.dll)

public Object DataContext { get; set; }
<frameworkElement DataContext="binding"/>
- or -
<frameworkElement DataContext="{StaticResource keyedObject}"/>

XAML 값

binding

기존 데이터 컨텍스트 또는 데이터 컨텍스트 내의 속성을 참조할 수 있는 바인딩 식입니다. 데이터 바인딩 또는 Binding 태그 확장을 참조하십시오.

keyedObject

범위 내 Resources 컬렉션에 있는 개체의 x:Key 값입니다. 일반적으로 이것은 코드에 정의된 사용자 지정 형식의 인스턴스화된 개체 요소이며 ResourceDictionary에 사용자 지정 XAML 네임스페이스 매핑이 있어야 합니다.

속성 값

형식: System.Object
데이터 컨텍스트로 사용할 개체입니다.

Dependency property identifier field: DataContextProperty

데이터 컨텍스트는 개체가 개체 트리의 해당 부모로부터 바인딩 정보를 상속할 수 있도록 하는 개념입니다.

데이터 컨텍스트의 가장 중요한 측면은 바인딩에 사용되는 데이터 소스입니다. DataContext 의 가장 자주 사용되는 용도는 CLR 데이터 소스 개체에 직접 설정하는 것입니다. 고정 시작 데이터 집합의 경우 CLR 데이터 소스는 클래스일 수 있습니다. 또는 로컬 데이터 소스를 새 ObservableCollection<T>으로 만든 다음 WCF 데이터 서비스(WCF Data Services) 또는 다른 기술을 통해 해당 컬렉션을 업데이트할 수 있습니다. WCF 데이터 서비스(WCF Data Services) 방식의 예제는 WCF 데이터 서비스(Silverlight) 항목을 참조하십시오.

데이터 컨텍스트는 데이터 소스 외에 바인딩의 다른 특성(예: 데이터 소스의 경로)을 포함할 수도 있습니다. 예를 들어 XAML에서 다음 개체 트리를 구성할 수 있습니다.

<StackPanel>
  <StackPanel.Resources>
    <SolidColorBrush Color="Orange" x:Key="MyBrush"/>
  </StackPanel.Resources>
  <StackPanel DataContext="{StaticResource MyBrush}">
    <Rectangle Height="50" Width="50" Fill="{Binding}" />
  </StackPanel>
</StackPanel>

이 경우 StackPanel에 정의된 DataContextRectangle 자식 개체에 상속되며 Fill 속성에 있는 정규화되지 않은 {Binding} 문에 대한 데이터 컨텍스트가 됩니다.

DataContext 는 자세한 바인딩 문을 방지하는 데 매우 유용한 공유 데이터 컨텍스트에 바인딩을 맞추는 데 편리합니다. 그러나 DataContext가 정의되지 않고 필요한 모든 바인딩 한정자가 별도의 바인딩 문에 존재하도록 하는 데 유효합니다.

코드에서 개체의 속성으로 계산되는 바인딩을 사용하여 데이터 컨텍스트를 직접 CLR 개체로 설정할 수 있습니다.

ResourceDictionary 의 XAML 개체 요소로 인스턴스화된 사용자 지정 개체로 DataContext를 설정할 수도 있습니다. 이 경우 StaticResource를 통해 해당 x:Key 값으로 리소스를 검색하여 개체를 참조합니다.

DataContext 는 해당 시나리오가 빈번하지는 않지만 특정 컨텍스트가 다른 컨텍스트에 바인딩될 수 있는 작업을 원활하게 수행할 수 있도록 바인딩 가능한 속성입니다.

다음 예제에서는 MyBooks라는 이름의 ListBox 및 해당 항목에 대한 UI 컨텍스트를 보여 줍니다. 다음에는 로드할 때 실행되는 코드 숨김이 MyBooks ListBox에서 DataContext를 설정합니다. ListBox 항목의 {Binding ISBN}{Binding Title} 경로 지정 식은 Source 바인딩에 대해 DataContext를 상속받고 사용할 수 있으며, ListBox 항목 채우기 동작을 사용하여 해당 컬렉션 소스에서 데이터 항목에 바인딩할 수 있습니다.


<StackPanel>

    <ListBox x:Name="MyBooks" Margin="5" ItemsSource="{Binding Mode=OneWay}" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" >
                    <TextBlock Text="{Binding ISBN}" Margin="0,0,50,0" />
            <TextBlock Text="{Binding Title}" />
            </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>



' You can add items to your collection.
AllBooks.Add(New Book("4458907683", "Training Your Dog", _
    New DateTime(2000, 2, 8), 44.25))
AllBooks.Add(New Book("0446675385", "Good Owners, Great Dogs", _
    New DateTime(1999, 9, 1), 15.99))

'Set the data context for the list of books
MyBooks.DataContext = AllBooks



       //You can add items to your collection
       AllBooks.Add(new Book("4458907683", "Training Your Dog",
           new DateTime(2000, 2, 8), 44.25));
       AllBooks.Add(new Book("0446675385", "Good Owners, Great Dogs",
           new DateTime(1999, 9, 1), 15.99));
       //Set the data context for the list of books
       MyBooks.DataContext = AllBooks;



이것은 간단한 예제일 뿐입니다. 바인딩 소스 같은 측면에 대한 지원 코드가 있는 이와 같은 예제 코드를 보려면 방법: 계층적 데이터에 바인딩하고 마스터/세부 뷰 만들기를 참조하십시오. 데이터 바인딩 시나리오에서 DataContext의 역할에 대한 자세한 내용은 데이터 바인딩을 참조하십시오.

Silverlight

5, 4, 3에서 지원

Windows Phone용 Silverlight

Windows Phone OS 7.1, Windows Phone OS 7.0에서 지원

Silverlight에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

커뮤니티 추가 항목

추가
표시: