Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ItemsControl.Items-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft die Auflistung ab, die zum Generieren des Inhalts von ItemsControl verwendet wird.

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

[BindableAttribute(true)]
public ItemCollection Items { get; }

Eigenschaftswert

Type: System.Windows.Controls.ItemCollection

Die Auflistung, die zum Erstellen des Inhalts von ItemsControl verwendet wird. Der Standard ist eine leere Auflistung.

Diese Eigenschaft kann verwendet werden, zum Hinzufügen von Elementen zu einer ItemsControl. Hinzufügen eines untergeordneten Elements ein ItemsControl Objekt implizit hinzugefügt der ItemCollection für die ItemsControl Objekt.

System_CAPS_noteHinweis

Diese Eigenschaft kann nur festgelegt werden, Extensible Application Markup Language (XAML) gezeigt Auflistungssyntax oder durch Zugriff auf das Auflistungsobjekt und mithilfe seiner Methoden wie z. B. Add. Die Eigenschaft auf das Auflistungsobjekt selbst ist schreibgeschützt, und die Auflistung selbst ist schreibgeschützt.

Beachten Sie, dass Sie entweder die Items oder die ItemsSource Eigenschaft, um die Auflistung anzugeben, die zum Generieren des Inhalts von verwendet werden soll die ItemsControl. Wenn die ItemsSource festgelegt wird, die Items -Auflistung ist schreibgeschützt und mit fester Größe verwendet.

Beim ItemsSource wird verwendet, wenn die ItemsSource -Eigenschaft null entfernt die Auflistung und setzt Sie Nutzung, Items, die ist eine leere ItemCollection.

<object>
  OneOrMoreElements
</object>

OneOrMoreElements

Eine oder mehrere UIElement Objekte.

Die folgenden Beispiele veranschaulichen Binden von Daten an eine ItemsControl. Im ersten Beispiel wird eine Klasse namens MyData erstellt, welche eine einfache Zeichenfolge-Auflistung ist.

public class MyData : ObservableCollection<string>
{
    public MyData()
    {
        Add("Item 1");
        Add("Item 2");
        Add("Item 3");
    }
}

Im folgenden Beispiel wird das ItemsSource Objekt eines ItemsControls an MyData gebunden.

<!--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);

Die folgende Abbildung zeigt das ListBox-Steuerelement, welches im vorherigen Beispiel erstellte wurde.

ListBox

Das folgende Beispiel veranschaulicht das Auffüllen einer ItemsControl mithilfe der Items Eigenschaft. Das Beispiel fügt die folgenden unterschiedlichen Typen von Elementen zur ListBox hinzu:

<!--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.Items>-->
</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);

Die folgende Abbildung zeigt die ListBox, welche im vorherigen Beispiel erstellt wurde.

ListBox mit vier Inhaltstypen

Beachten Sie, dass die ItemCollection ist eine Ansicht, damit Sie die auch Ansichtsfunktionen wie sortieren, Filtern und Gruppieren verwenden können.

Beispielsweise, wenn eine Instanz von eine ListBox, myListBox, Sie können gehen Sie zum Sortieren des Inhalts der ListBox. In diesem Beispiel Content ist der Name der Eigenschaft, nach zu sortieren.

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

Beachten Sie, dass Sie dies tun, wenn das Steuerelement direkt an eine Auflistung gebunden ist, die Standardansicht der Auflistung verwendet wird, und die Sortierkriterien gelten für alle anderen Steuerelemente, die direkt an der gleichen Auflistung gebunden. Die Ansicht wird die Ansicht nicht, wenn die ItemsSource Eigenschaft gebunden ist eine CollectionViewSource.

Wenn Ihre ItemsControl direkt an eine Auflistung gebunden ist, müssen Sie Folgendes ein, um die Standardansicht zu erhalten:

CollectionView myView;
myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);

Alternativ können Sie angeben, filtern, Sortieren und Gruppieren von Kriterien im XAML oder Code mit einem CollectionViewSource.

.NET Framework
Verfügbar seit 3.0
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: