DataTemplate 類別

定義

說明資料物件的視覺化結構。

public ref class DataTemplate : System::Windows::FrameworkTemplate
[System.Windows.Markup.DictionaryKeyProperty("DataTemplateKey")]
public class DataTemplate : System.Windows.FrameworkTemplate
[<System.Windows.Markup.DictionaryKeyProperty("DataTemplateKey")>]
type DataTemplate = class
    inherit FrameworkTemplate
Public Class DataTemplate
Inherits FrameworkTemplate
繼承
衍生
屬性

範例

下列範例示範如何建立 DataTemplate 內嵌。 DataTemplate指定每個資料項目在 內顯示為三 TextBlock 個專案 StackPanel 。 在此範例中,資料物件是稱為 的 Task 類別。 請注意,此範本中的每個 TextBlock 元素都會系結至 類別的 Task 屬性。

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel>
         <TextBlock Text="{Binding Path=TaskName}" />
         <TextBlock Text="{Binding Path=Description}"/>
         <TextBlock Text="{Binding Path=Priority}"/>
       </StackPanel>
     </DataTemplate>
   </ListBox.ItemTemplate>
 </ListBox>

在 resources 區段中定義 DataTemplate 更常見,因此它可以是可重複使用的物件,如下列範例所示:

<Window.Resources>
<DataTemplate x:Key="myTaskTemplate">
  <StackPanel>
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>
  </StackPanel>
</DataTemplate>
</Window.Resources>

現在您可以使用 myTaskTemplate 做為資源,如下列範例所示︰

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

如需完整範例,請參閱資料範本化範例簡介

備註

您可以使用 DataTemplate 來指定資料物件的視覺效果。 DataTemplate當您將 之類的 ListBox 系結 ItemsControl 至整個集合時,物件特別有用。 若沒有特定指示,則會 ListBox 在集合中顯示 物件的字串表示。 在此情況下,您可以使用 DataTemplate 來定義資料物件的外觀。 的內容 DataTemplate 會成為資料物件的視覺結構。

如需深入討論,請參閱 資料範本化概觀

建構函式

DataTemplate()

初始化 DataTemplate 類別的新執行個體。

DataTemplate(Object)

使用指定的 DataTemplate 屬性,初始化 DataType 類別的新執行個體。

屬性

DataTemplateKey

取得 DataTemplate 的預設金鑰。

DataType

為預期為 DataTemplate 的項目取得或設定類型。

Dispatcher

取得與這個 Dispatcher 關聯的 DispatcherObject

(繼承來源 DispatcherObject)
HasContent

取得值,指出這個樣板是否有最佳化內容。

(繼承來源 FrameworkTemplate)
IsSealed

取得值,這個值表示這個物件是否處於不變的狀態,以便無法對其進行變更。

(繼承來源 FrameworkTemplate)
Resources

取得或設定可在這個樣板的範圍內使用的資源集合。

(繼承來源 FrameworkTemplate)
Template

當樣板為已定義或由寫入器套用時,取得或設定記錄或播放該樣板之 XAML 節點的物件之參考。

(繼承來源 FrameworkTemplate)
Triggers

取得觸發程序的集合,這些觸發程序會根據一個或多個條件來套用屬性值或執行動作。

VisualTree

取得或設定樣板的根節點。

(繼承來源 FrameworkTemplate)

方法

CheckAccess()

判斷呼叫的執行是否可以存取這個 DispatcherObject

(繼承來源 DispatcherObject)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FindName(String, FrameworkElement)

尋找與這個樣板內定義之指定名稱相關聯的項目。

(繼承來源 FrameworkTemplate)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
LoadContent()

載入當做物件執行個體的樣板內容,並傳回該內容的根項目。

(繼承來源 FrameworkTemplate)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
RegisterName(String, Object)

將新的「名稱/物件」組註冊到目前的名稱範圍中。

(繼承來源 FrameworkTemplate)
Seal()

鎖定樣板,以便無法對其進行變更。

(繼承來源 FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

傳回值,這個值表示在這個類別的執行個體上,序列化處理是否應該將 Resources 屬性的值序列化。

(繼承來源 FrameworkTemplate)
ShouldSerializeVisualTree()

傳回值,這個值表示在這個類別的執行個體上,序列化處理是否應該將 VisualTree 屬性的值序列化。

(繼承來源 FrameworkTemplate)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
UnregisterName(String)

從 XAML 名稱範圍移除名稱/物件對應。

(繼承來源 FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

請依一組規則來檢查樣版化父代 (Parent)。

VerifyAccess()

請強制執行可以存取這個 DispatcherObject 的呼叫執行緒。

(繼承來源 DispatcherObject)

明確介面實作

INameScope.FindName(String)

傳回具有所提供之識別名稱的物件。

(繼承來源 FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

查詢指定的環境屬性 (Ambient Property) 是否可用於目前的範圍。

(繼承來源 FrameworkTemplate)

適用於

另請參閱