Windows app
摺疊目錄
展開目錄
資訊
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

ItemsControl.ItemTemplate 屬性

更新:2007 年 11 月

取得或設定用來顯示每個項目的 DataTemplate。這是相依性屬性。

命名空間:  System.Windows.Controls
組件:  PresentationFramework (在 PresentationFramework.dll 中)
針對 XAML 的 XMLNS: http://schemas.microsoft.com/winfx/xaml/presentation

[BindableAttribute(true)]
public DataTemplate ItemTemplate { get; set; }
/** @property */
/** @attribute BindableAttribute(true) */
public DataTemplate get_ItemTemplate()
/** @property */
/** @attribute BindableAttribute(true) */
public  void set_ItemTemplate(DataTemplate value)

public function get ItemTemplate () : DataTemplate
public function set ItemTemplate (value : DataTemplate)
<object>
  <object.ItemTemplate>
    <DataTemplate .../>
  </object.ItemTemplate>
</object>
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>
ResourceExtension
                    下列其中一項:StaticResource 標記延伸 或 DynamicResource 標記延伸。除非樣式本身包含可能執行階段參考的參考,如系統資源或使用者偏好設定,否則為了效能,通常會建議使用樣式的 StaticResource 標記延伸 參考。
                TemplateResourceKey x:Key 屬性 字串值,用以參考要求做為資源的樣板。
                

屬性值

型別:System.Windows.DataTemplate

DataTemplate,用來指定資料物件的視覺效果。預設為 null

識別項欄位

ItemTemplateProperty

中繼資料屬性設為 true

您可以使用 ItemTemplate 來指定資料物件的視覺效果。如果您的 ItemsControl 繫結至集合物件,而您沒有使用 DataTemplate 來提供特定的顯示指示,則每個項目所產生的 UI 就是基礎集合中每個物件的字串表示。

當您在 ItemsControl 上設定 ItemTemplate 時,會產生如下的 UI (使用 ListBox 做為範例):

  1. 在產生內容期間,ItemsPanel 會對 ItemContainerGenerator 啟始一項要求,來為每個資料項目各建立一個容器。若為 ListBox,該容器為 ListBoxItem。產生器會回呼至 ItemsControl,以準備容器。

  2. 部分的準備過程會牽涉將 ListBoxItemTemplate 複製為 ListBoxItemContentTemplate

  3. 與所有的 ContentControl 型別類似,ListBoxItemControlTemplate 包含 ContentPresenter。套用該樣板時,會建立一個 ContentPresenter,其 ContentTemplate 會繫結至 ListBoxItemContentTemplate

  4. 最後,ContentPresenter 會將該 ContentTemplate 套用在本身,進而建立 UI

如果您已定義多個 DataTemplate,並且想提供邏輯,以程式設計的方式選擇及套用 DataTemplate,請使用 ItemTemplateSelector 屬性。

ItemsControl 提供相當大的彈性讓使用者自訂視覺化內容,並且提供許多設定樣式和範本屬性。請使用 ItemContainerStyle 屬性或 ItemContainerStyleSelector 屬性來設定樣式,以影響包含資料項目 (item) 之項目 (element) 的外觀。例如,對於 ListBox,產生的容器是 ListBoxItem 控制項,而對於 ComboBox,則是 ComboBoxItem 控制項。若要影響項目的配置,請使用 ItemsPanel 屬性。如果您在控制項中使用群組,則可以使用 GroupStyleGroupStyleSelector 屬性。

如需詳細資訊,請參閱資料範本化概觀

下列範例顯示如何建立 DataTemplate 內嵌。DataTemplate 指定每個資料項目 (item) 在 StackPanel 中都要顯示成三個 TextBlock 項目 (element)。在此範例中,資料物件是一個叫做 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>


較常見的做法是在資源區段中定義 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}"/>


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

Windows Vista

.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求

.NET Framework

支援版本:3.5、3.0

社群新增項目

顯示:
© 2016 Microsoft