FrameworkElement.DataContext プロパティ

定義

要素がデータ バインディングに含まれている場合に、その要素のデータ コンテキストを取得または設定します。

public:
 property System::Object ^ DataContext { System::Object ^ get(); void set(System::Object ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)]
public object DataContext { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.DataContext : obj with get, set
Public Property DataContext As Object

プロパティ値

Object

データ コンテキストとして使用するオブジェクト。

属性

次の例は、データ コンテキストがバインドにどのように作用し、バインドされたプロパティの特定の値を定義する情報を提供するかを示しています。

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

注釈

データ コンテキスト は、バインディングに使用されるデータ ソースに関する情報と、バインディングの他の特性 (パスなど) を要素が親要素から継承できるようにする概念です。

データ コンテキストは.NET オブジェクトに直接設定でき、バインドはそのオブジェクトのプロパティに評価されます。 または、データ コンテキストをオブジェクトに DataSourceProvider 設定することもできます。

この依存関係プロパティは、プロパティ値を継承します。 ローカル値またはスタイルを使用して他の DataContext 値が設定されていない子要素がある場合、プロパティ システムは値を、この値が割り当てられた最も近い親要素の値に DataContext 設定します。

または、クラスの次のいずれかのプロパティ Binding を使用して、バインディング ソースを明示的に指定できます。

- <xref:System.Windows.Data.Binding.ElementName%2A>.
- <xref:System.Windows.Data.Binding.Source%2A>.
- <xref:System.Windows.Data.Binding.RelativeSource%2A>. 

詳細については、「 方法: バインディング ソースを指定する」を参照してください

XAML では、 DataContext 最も一般的に宣言として Binding 設定されます。 プロパティ要素の構文または属性構文を使用できます。 このページの例では、属性の構文を示します。 また、コードを使用して設定 DataContextすることもできます。

DataContext は、あるコンテキストが別のコンテキストにバインドされる可能性があるシナリオを容易にするバインド可能なプロパティです。 ただし、バインドする DataContext場合は、循環バインディング参照を作成しないように注意してください (それ自体にバインド DataContext しないでください。これは、プロパティのプロパティ値の継承の性質 DataContext により可能です)。

XAML プロパティ要素の使用

<object>  
  <object.DataContext>  
    <dataContextObject />  
  </object.DataContext>  
</object>  

XAML 属性の使用方法

<object DataContext="bindingUsage"/>  

- または -

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

XAML 値

dataContextObject
親要素内のバインディングのデータ コンテキストとして機能する直接埋め込みオブジェクト。 通常、このオブジェクトは、または別BindingBaseBinding派生クラスです。 または、バインディングを目的とした任意のオブジェクト型の生データを、後で定義した実際のバインディングを使用して、ここに配置することもできます。

bindingUsage
適切なデータ コンテキストに評価されるバインディングの使用法。 詳細については、「バインディングのマークアップ拡張機能」を参照してください。

resourceExtension
次のいずれか: StaticResource または DynamicResource. この使用法は、リソース内のオブジェクトとして定義された生データを参照するときに使用されます。 「XAML リソース」を参照してください。

contextResourceKey
ResourceDictionaryから要求されるオブジェクトのキー識別子。

依存プロパティ情報

識別子フィールド DataContextProperty
に設定されたメタデータ プロパティ true Inherits

適用対象