.NET Framework Class Library
ItemsControl..::.ItemContainerGenerator Property

Gets the ItemContainerGenerator that is associated with the control.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
Syntax

Visual Basic (Declaration)
<BindableAttribute(False)> _
<BrowsableAttribute(False)> _
Public ReadOnly Property ItemContainerGenerator As ItemContainerGenerator
Visual Basic (Usage)
Dim instance As ItemsControl
Dim value As ItemContainerGenerator

value = instance.ItemContainerGenerator
C#
[BindableAttribute(false)]
[BrowsableAttribute(false)]
public ItemContainerGenerator ItemContainerGenerator { get; }
Visual C++
[BindableAttribute(false)]
[BrowsableAttribute(false)]
public:
property ItemContainerGenerator^ ItemContainerGenerator {
    ItemContainerGenerator^ get ();
}
JScript
public function get ItemContainerGenerator () : ItemContainerGenerator
XAML
You cannot set this property in XAML.

Property Value

Type: System.Windows.Controls..::.ItemContainerGenerator
The ItemContainerGenerator that is associated with the control. The default is nullNothingnullptra null reference (Nothing in Visual Basic).
Remarks

An ItemContainerGenerator is responsible for generating the user interface (UI) for its host, such as an ItemsControl. It maintains the association between the items in the data view of the control and the corresponding UIElement objects.

Examples

If you need to get a specific ListBoxItem at a particular index in a ListBox, you can use an ItemContainerGenerator.

The following example shows a ListBox and its items.

XAML
<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>

The following example shows how to retrieve the item by specifying the index of the item in the ContainerFromIndex property of the ItemContainerGenerator.

Visual Basic
Private Sub GetIndex0(ByVal Sender As Object, ByVal e As RoutedEventArgs)

    Dim lbi As ListBoxItem = CType( _
        lb.ItemContainerGenerator.ContainerFromIndex(0), ListBoxItem)
    Item.Content = "The contents of the item at index 0 are: " + _
        (lbi.Content.ToString()) + "."
End Sub
C#
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()) + ".";
}

After you have retrieved the list box item, you can display the contents of the item, as shown in the following example.

Visual Basic
Item.Content = "The contents of the item at index 0 are: " + _
    (lbi.Content.ToString()) + "."
C#
Item.Content = "The contents of the item at index 0 are: " +
    (lbi.Content.ToString()) + ".";
Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0
See Also

Reference

Other Resources

Page view tracker