ItemsControl.Items ItemsControl.Items ItemsControl.Items ItemsControl.Items Property

Definición

Obtiene la recolección utilizada para generar el contenido de ItemsControl.Gets the collection used to generate the content of the ItemsControl.

public:
 property System::Windows::Controls::ItemCollection ^ Items { System::Windows::Controls::ItemCollection ^ get(); };
[System.ComponentModel.Bindable(true)]
public System.Windows.Controls.ItemCollection Items { get; }
member this.Items : System.Windows.Controls.ItemCollection
Public ReadOnly Property Items As ItemCollection

Valor de propiedad

La recolección que se utiliza para generar el contenido de ItemsControl.The collection that is used to generate the content of the ItemsControl. El valor predeterminado es una colección vacía.The default is an empty collection.

Ejemplos

En los siguientes ejemplos se muestra cómo enlazar datos a un ItemsControl.The following examples demonstrate binding data to an ItemsControl. En el primer ejemplo se crea una MyData clase denominada que es una colección de cadenas simple.The first example creates a class called MyData that is a simple string collection.

public class MyData : ObservableCollection<string>
{
    public MyData()
    {
        Add("Item 1");
        Add("Item 2");
        Add("Item 3");
    }
}
Public Class MyData
    Inherits ObservableCollection(Of String)

    Public Sub New()  '

        Add("Item 1")
        Add("Item 2")
        Add("Item 3")

    End Sub 'New
End Class 'MyData

En el siguiente ejemplo se enlaza ItemsSource el objeto de ItemsControl una MyDataa.The following example binds the ItemsSource object of an ItemsControl to MyData.

<!--Create an instance of MyData as a resource.-->
<src:MyData x:Key="dataList"/>
<ListBox ItemsSource="{Binding Source={StaticResource dataList}}"/>
ListBox listBox1 = new ListBox();
MyData listData = new MyData();
Binding binding1 = new Binding();

binding1.Source = listData;
listBox1.SetBinding(ListBox.ItemsSourceProperty, binding1);
Dim listBox1 As New ListBox()
Dim listData As New MyData()
Dim binding1 As New Binding()

binding1.Source = listData
listBox1.SetBinding(ListBox.ItemsSourceProperty, binding1)

En la ilustración siguiente se ListBox muestra el control creado en el ejemplo anterior.The following illustration shows the ListBox control created in the previous example.

Cuadro de listaListBox

En el ejemplo siguiente se muestra cómo rellenar ItemsControl un Items mediante la propiedad.The following example demonstrates how to populate an ItemsControl by using the Items property. En el ejemplo se agregan los siguientes tipos de elementos ListBoxdiferentes a:The example adds the following different types of items to the ListBox:

<!--Create a ListBox that contains a string, a Rectangle,
     a Panel, and a DateTime object. These items can be accessed
     via the Items property.-->
<ListBox xmlns:sys="clr-namespace:System;assembly=mscorlib"
         Name="simpleListBox">

  <!-- The <ListBox.Items> element is implicitly used.-->
  This is a string in a ListBox

  <sys:DateTime>2004/3/4 13:6:55</sys:DateTime>

  <Rectangle Height="40" Width="40"  Fill="Blue"/>

  <StackPanel Name="itemToSelect">
    <Ellipse Height="40" Fill="Blue"/>
    <TextBlock>Text below an Ellipse</TextBlock>
  </StackPanel>

  <TextBlock>String in a TextBlock</TextBlock>
</ListBox>
// Add a String to the ListBox.
listBox1.Items.Add("This is a string in a ListBox");

// Add a DateTime object to a ListBox.
DateTime dateTime1 = new DateTime(2004, 3, 4, 13, 6, 55);

listBox1.Items.Add(dateTime1);

// Add a Rectangle to the ListBox.
Rectangle rect1 = new Rectangle();
rect1.Width = 40;
rect1.Height = 40;
rect1.Fill = Brushes.Blue;
listBox1.Items.Add(rect1);

// Add a panel that contains multpile objects to the ListBox.
Ellipse ellipse1 = new Ellipse();
TextBlock textBlock1 = new TextBlock();

ellipse1.Width = 40;
ellipse1.Height = 40;
ellipse1.Fill = Brushes.Blue;

textBlock1.TextAlignment = TextAlignment.Center;
textBlock1.Text = "Text below an Ellipse";

stackPanel1.Children.Add(ellipse1);
stackPanel1.Children.Add(textBlock1);

listBox1.Items.Add(stackPanel1);
' Create a Button with a string as its content.
listBox1.Items.Add("This is a string in a ListBox")

' Create a Button with a DateTime object as its content.
Dim dateTime1 As New DateTime(2004, 3, 4, 13, 6, 55)

listBox1.Items.Add(dateTime1)

' Create a Button with a single UIElement as its content.
Dim rect1 As New Rectangle()
rect1.Width = 40
rect1.Height = 40
rect1.Fill = Brushes.Blue
listBox1.Items.Add(rect1)

' Create a Button with a panel that contains multiple objects 
' as its content.
Dim ellipse1 As New Ellipse()
Dim textBlock1 As New TextBlock()

ellipse1.Width = 40
ellipse1.Height = 40
ellipse1.Fill = Brushes.Blue

textBlock1.TextAlignment = TextAlignment.Center
textBlock1.Text = "Text below an Ellipse"

stackPanel1.Children.Add(ellipse1)
stackPanel1.Children.Add(textBlock1)

listBox1.Items.Add(stackPanel1)

En la ilustración siguiente se ListBox muestra el creado en el ejemplo anterior.The following illustration shows the ListBox created in the previous example.

ListBox con cuatro tipos de contenidoListBox with four types of content

Tenga en cuenta ItemCollection que es una vista, por lo que puede usar las funcionalidades relacionadas con las vistas como ordenación, filtrado y agrupación.Note that the ItemCollection is a view, so you can use the view-related functionalities such as sorting, filtering, and grouping.

Por ejemplo, si tiene una instancia de ListBox, myListBox, puede hacer lo siguiente para ListBoxordenar el contenido de.For example, if you have an instance of a ListBox, myListBox, you can do the following to sort the content of the ListBox. En este ejemplo, Content es el nombre de la propiedad por la que se va a ordenar.In this example, Content is the name of the property to sort by.

myListBox.Items.SortDescriptions.Add(
    new SortDescription("Content", ListSortDirection.Descending));
myListBox.Items.SortDescriptions.Add(New SortDescription("Content", ListSortDirection.Descending))

Tenga en cuenta que al hacer esto, si el control está enlazado directamente a una colección, se usa la vista de colección predeterminada y los criterios de ordenación se aplican a todos los demás controles enlazados a la misma colección directamente.Note that when you do this, if the control is bound to a collection directly, the default collection view is used, and the sort criteria are applied to all other controls bound to the same collection directly. La vista no será la vista predeterminada si la ItemsSource propiedad está enlazada a un. CollectionViewSourceThe view will not be the default view if the ItemsSource property is bound to a CollectionViewSource.

ItemsControl Si está enlazado directamente a una colección, puede hacer lo siguiente para obtener la vista predeterminada:If your ItemsControl is bound directly to a collection, then you can do the following to get the default view:

CollectionView myView;
Private myView As CollectionView
myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);
myView = CType(CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource), CollectionView)

Como alternativa, puede especificar criterios de filtrado, ordenación y agrupación en XAMLXAML el CollectionViewSourcecódigo o mediante.Alternately, you can specify filtering, sorting, and grouping criteria in XAMLXAML or code by using a CollectionViewSource.

Comentarios

Esta propiedad se puede utilizar para agregar elementos a un ItemsControl.This property may be used to add items to an ItemsControl. Al agregar un elemento secundario ItemsControl a un objeto, se agrega implícitamente ItemCollection a ItemsControl para el objeto.Adding a child to an ItemsControl object implicitly adds it to the ItemCollection for the ItemsControl object.

Nota

Esta propiedad solo se puede establecer en Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) a través de la sintaxis de la colección mostrada, o bien accediendo al objeto de colección y Addusando sus distintos métodos, como.This property can only be set in Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) via the collection syntax shown, or by accessing the collection object and using its various methods such as Add. La propiedad para tener acceso al propio objeto de la colección es de solo lectura y la propia colección es de lectura y escritura.The property to access the collection object itself is read-only, and the collection itself is read-write.

Tenga en cuenta que se usa Items la ItemsSource propiedad o para especificar la colección que se debe usar para ItemsControlgenerar el contenido de.Note that you use either the Items or the ItemsSource property to specify the collection that should be used to generate the content of your ItemsControl. Cuando se ItemsSource establece la propiedad, la Items colección se convierte en de solo lectura y de tamaño fijo.When the ItemsSource property is set, the Items collection is made read-only and fixed-size.

Cuando ItemsSource está en uso, al establecer ItemsSource la propiedad null en se quita la colección y se restaura el Itemsuso de, que será un ItemCollectionvacío.When ItemsSource is in use, setting the ItemsSource property to null removes the collection and restores usage to Items, which will be an empty ItemCollection.

Uso de elementos de propiedad XAMLXAML Property Element Usage

<object>  
  OneOrMoreElements  
</object>  

Valores XAMLXAML Values

OneOrMoreElementsOneOrMoreElements
Uno o más UIElement objetos.One or more UIElement objects.

Se aplica a

Consulte también: