ItemsControl.Items Eigenschaft

Definition

Ruft die Auflistung ab, mit der der Inhalt des ItemsControl generiert wird.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

Eigenschaftswert

Die Auflistung, mit der der Inhalt des ItemsControl generiert wird.The collection that is used to generate the content of the ItemsControl. Der Standard ist eine leere Auflistung.The default is an empty collection.

Attribute

Beispiele

In den folgenden Beispielen wird das Binden von ItemsControlDaten an eine veranschaulicht.The following examples demonstrate binding data to an ItemsControl. Im ersten Beispiel wird eine Klasse namens MyData erstellt, die eine einfache Zeichen folgen Auflistung ist.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
End Class

Im folgenden Beispiel wird das ItemsSource -Objekt ItemsControl von an MyDatagebunden.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)

Die folgende Abbildung zeigt das ListBox -Steuerelement, das im vorherigen Beispiel erstellt wurde.The following illustration shows the ListBox control created in the previous example.

ListBoxListBox

Im folgenden Beispiel wird veranschaulicht, wie ein ItemsControl mit der Items -Eigenschaft aufgefüllt wird.The following example demonstrates how to populate an ItemsControl by using the Items property. Im folgenden Beispiel werden die folgenden verschiedenen Typen von Elementen ListBoxhinzugefügt: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)

Die folgende Abbildung zeigt die ListBox im vorherigen Beispiel erstellte.The following illustration shows the ListBox created in the previous example.

![ListBox mit vier Inhaltstypen] (~/add/media/controlcontentmodellistbox2.PNG "ListBox mit vier Inhaltstypen")ListBox with four types of content

Beachten Sie, ItemCollection dass es sich bei um eine Ansicht handelt, sodass Sie die Ansichts bezogenen Funktionen wie Sortieren, Filtern und Gruppieren verwenden können.Note that the ItemCollection is a view, so you can use the view-related functionalities such as sorting, filtering, and grouping.

Wenn Sie z ListBox ListBox. b. eine Instanz von myListBoxhaben, können Sie wie folgt vorgehen, um den Inhalt von zu sortieren.For example, if you have an instance of a ListBox, myListBox, you can do the following to sort the content of the ListBox. In diesem Beispiel ist Content der Name der Eigenschaft, nach der sortiert werden soll.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))

Beachten Sie Folgendes: Wenn das Steuerelement direkt an eine Auflistung gebunden ist, wird die Standard Auflistungs Ansicht verwendet, und die Sortierkriterien werden auf alle anderen Steuerelemente angewendet, die direkt an dieselbe Auflistung gebunden sind.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. Die Ansicht ist nicht die Standardansicht, wenn die ItemsSource Eigenschaft an einen CollectionViewSourcegebunden ist.The view will not be the default view if the ItemsSource property is bound to a CollectionViewSource.

Wenn Ihr ItemsControl direkt an eine Auflistung gebunden ist, können Sie wie folgt vorgehen, um die Standardansicht zu erhalten: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)

Alternativ können Sie Filter-, Sortier-und Gruppierungs Kriterien in XAMLXAML -oder-Code CollectionViewSourcemithilfe von angeben.Alternately, you can specify filtering, sorting, and grouping criteria in XAMLXAML or code by using a CollectionViewSource.

Hinweise

Diese Eigenschaft kann verwendet werden, um Elemente zu einem ItemsControlhinzuzufügen.This property may be used to add items to an ItemsControl. Wenn Sie einem ItemsControl Objekt ein untergeordnetes Element hinzufügen, wird es ItemsControl implizit dem ItemCollection für das-Objekt hinzugefügt.Adding a child to an ItemsControl object implicitly adds it to the ItemCollection for the ItemsControl object.

Hinweis

Diese Eigenschaft kann nur in über die Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) angezeigte Auflistungs Syntax oder durch Zugriff auf das Auflistungs Objekt und mithilfe der verschiedenen AddMethoden wie z. b. festgelegt werden.This property can only be set in Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) via the collection syntax shown, or by accessing the collection object and using its various methods such as Add. Die-Eigenschaft für den Zugriff auf das Auflistungs Objekt selbst ist schreibgeschützt, und die Auflistung selbst hat Lese-/Schreibzugriff.The property to access the collection object itself is read-only, and the collection itself is read-write.

Beachten Sie, dass Sie entweder Items die- ItemsSource Eigenschaft oder die-Eigenschaft verwenden, um die Auflistung anzugeben, die zum ItemsControlgenerieren des Inhalts von verwendet werden soll.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. Wenn die ItemsSource -Eigenschaft festgelegt ist Items , wird die-Auflistung schreibgeschützt und mit fester Größe festgelegt.When the ItemsSource property is set, the Items collection is made read-only and fixed-size.

Wenn ItemsSource verwendet wird, wird durch Festlegen ItemsSource der- null Eigenschaft auf die-Auflistung entfernt und Itemsdie Verwendung in wieder hergestellt, ItemCollectionwobei es sich um eine leere handelt.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.

Verwendung von XAML-EigenschaftenelementenXAML Property Element Usage

<object>  
  OneOrMoreElements  
</object>  

XAML-WerteXAML Values

OneOrMoreElementsOneOrMoreElements
Mindestens ein-Objekt. UIElementOne or more UIElement objects.

Gilt für:

Siehe auch