FrameworkElement.DataContext プロパティ


要素がデータ バインディングに含まれている場合に、その要素のデータ コンテキストを取得または設定します。Gets or sets the data context for an element when it participates in data binding.

 property System::Object ^ DataContext { System::Object ^ get(); void set(System::Object ^ value); };
public object DataContext { get; set; }
member this.DataContext : obj with get, set
Public Property DataContext As Object



データ コンテキストとして使用するオブジェクト。The object to use as data context.


次の例では、データコンテキストがバインディングにどのように作用するかを示し、バインドされたプロパティの特定の値を定義する情報を提供します。The following example illustrates how a data context acts on a binding and provides the information that defines the specific values of bound properties.

  <src:LeagueList x:Key="MyList" />
<DockPanel DataContext="{Binding Source={StaticResource MyList}}">


データコンテキストは、バインドに使用されるデータソースや、パスなどのその他の特性について、要素が親要素から情報を継承できるようにする概念です。Data context is a concept that allows elements to inherit information from their parent elements about the data source that is used for binding, as well as other characteristics of the binding, such as the path.

データコンテキストは、そのオブジェクトのプロパティを評価するバインディングを使用して、.NET オブジェクトに直接設定できます。Data context can be set directly to a .NET object, with the bindings evaluating to properties of that object. または、データコンテキストを DataSourceProvider オブジェクトに設定することもできます。Alternatively, you can set the data context to a DataSourceProvider object.

この依存関係プロパティは、プロパティ値を継承します。This dependency property inherits property values. ローカル値またはスタイルによって確立された DataContext の他の値を持たない子要素がある場合、プロパティシステムは、この値が割り当てられている最も近い親要素の DataContext 値になるように値を設定します。If there are child elements without other values for DataContext established through local values or styles, then the property system will set the value to be the DataContext value of the nearest parent element with this value assigned.

または、Binding クラスの次のいずれかのプロパティを使用して、バインドソースを明示的に指定することもできます。Alternatively, you can use one of the following properties of the Binding class to specify the binding source explicitly:

- <span data-ttu-id="124ae-403">[](<xref:System.Windows.Data.Binding.ElementName%2A>)</span><span class="sxs-lookup"><span data-stu-id="124ae-403"><xref:System.Windows.Data.Binding.ElementName%2A>.</span></span>
- <span data-ttu-id="124ae-404">[](<xref:System.Windows.Data.Binding.Source%2A>)</span><span class="sxs-lookup"><span data-stu-id="124ae-404"><xref:System.Windows.Data.Binding.Source%2A>.</span></span>
- <span data-ttu-id="124ae-405">[](<xref:System.Windows.Data.Binding.RelativeSource%2A>)</span><span class="sxs-lookup"><span data-stu-id="124ae-405"><xref:System.Windows.Data.Binding.RelativeSource%2A>.</span></span> 

詳細については、「方法: バインディングソースを指定する」を参照してください。For more information, see How to: Specify the Binding Source.

XAML では、通常、DataContextBinding 宣言として設定されます。In XAML, DataContext is most typically set as a Binding declaration. プロパティ要素の構文または属性構文を使用できます。You can use either property element syntax or attribute syntax. 属性の構文については、このページの例を参照してください。Attribute syntax is shown in the example on this page. コードを使用して DataContextを設定することもできます。You can also use code to set DataContext.

DataContext は、あるコンテキストが別のコンテキストにバインドされている可能性のあるシナリオを容易にするためのバインド可能なプロパティです。DataContext is a bindable property to facilitate scenarios where one context might be bound to another. ただし、DataContextにバインドする場合は、循環バインディング参照を作成しないように注意してください (DataContext をそれ自体にバインドしないでください。 DataContext プロパティのプロパティ値の継承の特性によって実行できます)。However, if you bind to DataContext, be careful to not create circular binding references (do not bind a DataContext to itself, which it is possible to do because of the property value inheritance nature of the DataContext property).

XAML プロパティ要素の使用XAML Property Element Usage

    <dataContextObject />  

XAML 属性の使用XAML Attribute Usage

<object DataContext="bindingUsage"/>  


<object DataContext="{resourceExtension contextResourceKey}"/>  

XAML の値XAML Values

親要素内の任意のバインドのデータコンテキストとして機能する直接埋め込まれたオブジェクト。A directly embedded object that serves as data context for any bindings within the parent element. 通常、このオブジェクトは Binding または別の BindingBase 派生クラスです。Typically, this object is a Binding or another BindingBase derived class. また、バインドを目的としたオブジェクトの種類の生データをここに配置し、実際のバインドを後で定義することもできます。Alternatively, raw data of any object type intended for binding may be placed here, with the actual bindings defined later.

適切なデータコンテキストに評価されるバインディングの使用。A binding usage that evaluates to an appropriate data context. 詳細については、「バインディングのマークアップ拡張機能」を参照してください。For details, see Binding Markup Extension.

StaticResourceまたはDynamicResourceのいずれかです。One of the following: StaticResource or DynamicResource. この使用法は、リソース内のオブジェクトとして定義された生データを参照するときに使用されます。This usage is used when referring to raw data defined as an object in resources. XAML リソース」を参照してください。See XAML Resources.

ResourceDictionary内から要求されているオブジェクトのキー識別子。The key identifier for the object being requested from within a ResourceDictionary.

依存プロパティ情報Dependency Property Information

識別子フィールドIdentifier field DataContextProperty
メタデータプロパティが true に設定されるMetadata properties set to true Inherits