匯出 (0) 列印
全部展開
本文章是由機器翻譯。 將指標移到文章內的文字上方即可查看原文。 其他資訊。
譯文
原文

ItemContainerGenerator 類別

會產生使用者介面 (UI)代替與其主應用程式,例如ItemsControl

System.Object
  System.Windows.Controls.ItemContainerGenerator

命名空間:  System.Windows.Controls
組件:  PresentationFramework (在 PresentationFramework.dll 中)

public sealed class ItemContainerGenerator : IRecyclingItemContainerGenerator, 
	IItemContainerGenerator, IWeakEventListener

ItemContainerGenerator 類型會公開下列成員。

  名稱描述
公用屬性Items取得集合的項目屬於這ItemContainerGenerator
公用屬性Status產生狀態的ItemContainerGenerator
回頁首

  名稱描述
公用方法ContainerFromIndex傳回對應的項目中指定索引處的項目ItemCollection
公用方法ContainerFromItem傳回UIElement對應到指定的項目。
公用方法Equals(Object)判斷指定的物件是否等於目前物件。 (繼承自 Object)。
公用方法GenerateBatches傳回物件,可管理Status屬性。
公用方法GetHashCode做為預設雜湊函式。 (繼承自 Object)。
公用方法GetType取得目前執行個體的 Type (繼承自 Object)。
公用方法IndexFromContainer(DependencyObject)傳回對應於指定的項目至產生的UIElement
公用方法IndexFromContainer(DependencyObject, Boolean)傳回對應於指定的項目至產生的UIElement、 選擇性地以遞迴方式搜尋階層架構項目。
公用方法ItemFromContainer傳回符合的項目至指定的狀況下,產生的UIElement
公用方法ToString傳回表示目前物件的字串。 (繼承自 Object)。
回頁首

  名稱描述
公用事件ItemsChanged ItemsChanged 便會引發事件ItemContainerGenerator通知項目集合已變更的版面配置。
公用事件StatusChanged StatusChanged 便會引發事件ItemContainerGenerator來通知它的狀態已變更的控制項。
回頁首

  名稱描述
明確介面實作私用方法IItemContainerGenerator.GenerateNext()傳回用來顯示下一個項目容器項目。
明確介面實作私用方法IItemContainerGenerator.GenerateNext(Boolean)傳回的容器項目,用來顯示下一個項目中,而且是否容器項目已經新產生 (實現)。
明確介面實作私用方法IItemContainerGenerator.GeneratorPositionFromIndex傳回 GeneratorPosition 物件會將對應至指定索引處的項目。
明確介面實作私用方法IItemContainerGenerator.GetItemContainerGeneratorForPanel傳回 ItemContainerGenerator 適用於所指定的面板。
明確介面實作私用方法IItemContainerGenerator.IndexFromGeneratorPosition傳回對應至指定的 GeneratorPosition 的索引。
明確介面實作私用方法IItemContainerGenerator.PrepareItemContainer指定的項目做為容器準備相對應的項目。
明確介面實作私用方法IItemContainerGenerator.Remove這個成員可以支援Windows Presentation Foundation (WPF)基礎結構而且並非設計直接從您的程式碼使用。
明確介面實作私用方法IItemContainerGenerator.RemoveAll移除所有產生 (實現) 的項目。
明確介面實作私用方法IItemContainerGenerator.StartAt(GeneratorPosition, GeneratorDirection)正在準備產生器產生的項目,開始於指定的 GeneratorPosition,並在指定的 GeneratorDirection。
明確介面實作私用方法IItemContainerGenerator.StartAt(GeneratorPosition, GeneratorDirection, Boolean)正在準備產生器產生的項目,開始於指定的 GeneratorPosition,並在指定的 GeneratorDirection,以及控制,就不會產生 (實現) 的項目開始。
明確介面實作私用方法IRecyclingItemContainerGenerator.Recycle這個成員可以支援Windows Presentation Foundation (WPF)基礎結構而且並非設計直接從您的程式碼使用。
明確介面實作私用方法IWeakEventListener.ReceiveWeakEvent這個成員可以支援Windows Presentation Foundation (WPF)基礎結構而且並非設計直接從您的程式碼使用。
回頁首

ItemContainerGenerator 實作IItemContainerGenerator,也就是定義型別介面的:

每個ItemsControl型別具有對應的容器型別。 容器項目是包含資料中的項目工作項目集合的物件。 例如, ListBox,產生的容器是ListBoxItem控制; 對於ComboBox,它們是ComboBoxItem控制項。

ItemsControl 會產生它的項目,透過IItemContainerGenerator介面。 ItemContainerGenerator 屬性的ItemsControl屬於型別ItemContainerGenerator,哪一個實作IItemContainerGenerator介面。 因此,您可以存取ItemContainerGenerator相關聯的物件您ItemsControl使用ItemContainerGenerator屬性。 例如,如果您有資料繫結TreeView,而您想要取得TreeViewItem根據索引或其相關聯的資料的項目,您可以使用ItemContainerGenerator.ContainerFromIndexItemContainerGenerator.ContainerFromItem方法。 或者,您可以使用ItemContainerGenerator.IndexFromContainerItemContainerGenerator.ItemFromContainer方法來取得與指定產生之容器項目關聯的索引或資料的項目。

除了從這些使用方式, IItemContainerGenerator介面用在進階案例中。 一般來說,本身已實作的虛擬化面板的進階應用程式會呼叫該介面的成員。

如果您需要取得位於 ListBox 中特定索引處的特定 ListBoxItem,可以使用 ItemContainerGenerator

下列範例顯示 ListBox 及其項目。


<ListBox Margin="10,0,0,5" Name="lb" VerticalAlignment="Top" Grid.Column="0" Grid.Row="2">
    <ListBoxItem>Item 0</ListBoxItem>
    <ListBoxItem>Item 1</ListBoxItem>
    <ListBoxItem>Item 2</ListBoxItem>
    <ListBoxItem>Item 3</ListBoxItem>
</ListBox>


下列範例示範如何在 ItemContainerGeneratorContainerFromIndex 屬性中指定項目的索引,以便擷取該項目。


private void GetIndex0(object sender, RoutedEventArgs e)
{
  ListBoxItem lbi = (ListBoxItem)
      (lb.ItemContainerGenerator.ContainerFromIndex(0));
  Item.Content = "The contents of the item at index 0 are: " +
      (lbi.Content.ToString()) + ".";
}


擷取清單方塊項目之後,您就可以顯示項目的內容,如下列範例所示。


Item.Content = "The contents of the item at index 0 are: " +
    (lbi.Content.ToString()) + ".";


.NET Framework

支援版本:4.5、4、3.5、3.0

.NET Framework Client Profile

支援版本:4、3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (不支援伺服器核心角色), Windows Server 2008 R2 (SP1 (含) 以後版本支援伺服器核心角色,不支援 Itanium)

此.NET Framework 並不支援各種平台的所有版本。如需支援版本的清單,請參閱.NET Framework 系統需求.

這個類型的任何 Publicstatic (在 Visual Basic 中為 Shared) 成員都是安全執行緒。不保證任何執行個體成員是安全執行緒。

社群新增項目

新增
顯示:
© 2015 Microsoft