내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

FrameworkElement.DataContext 속성

2013-12-13

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

Namespace:  System.Windows
어셈블리:  System.Windows(System.Windows.dll)
XMLNS for XAML: xmlns에 매핑되지 않습니다.

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

XAML 값

binding

기존 데이터 컨텍스트 또는 데이터 컨텍스트 내의 속성을 참조할 수 있는 바인딩 식입니다. Windows Phone의 데이터 바인딩을 참조하세요.

keyedObject

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

속성 값

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

종속성 속성 식별자 필드: DataContextProperty

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

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

데이터 컨텍스트는 데이터 소스 외에 바인딩의 다른 특성(예: 데이터 소스의 경로)을 포함할 수도 있습니다. 예를 들어 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}" 
             FontSize="{StaticResource PhoneFontSizeMedium}">
        <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;


이것은 간단한 예제일 뿐입니다. 데이터 바인딩 시나리오에서 DataContext의 역할에 대한 자세한 내용은 Windows Phone의 데이터 바인딩을 참조하세요.

Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft