FrameworkElement.DataContext 屬性

定義

取得或設定項目在參與資料繫結時的資料內容。

C#
[System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)]
public object DataContext { get; set; }

屬性值

Object

用做為資料內容的物件。

屬性

範例

下列範例說明資料內容如何在系結上運作,並提供定義系結屬性特定值的資訊。

XAML
<Window.Resources>
  <src:LeagueList x:Key="MyList" />
XAML
</Window.Resources>
XAML
<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 Attribute Usage

XAML
<object DataContext="bindingUsage"/>  

-或-

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

XAML 值

dataCoNtextObject
直接内嵌物件,可作為父元素內任何系結的資料內容。 一般而言,這個物件是 Binding 或其他 BindingBase 衍生類別。 或者,任何用於系結之物件類型的未經處理資料,都可以在這裡放置,並稍後定義實際系結。

bindingUsage
評估為適當資料內容的系結使用方式。 如需詳細資訊,請參閱Binding 標記延伸模組

resourceExtension
下列其中一項: StaticResourceDynamicResource 。 參考資源中定義為物件的原始資料時,會使用此用法。 請參閱 XAML 資源

coNtextResourceKey
從 內 ResourceDictionary 要求之物件的索引鍵識別碼。

相依性屬性資訊

識別碼欄位 DataContextProperty
設定為 的中繼資料屬性 true Inherits

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7