ItemsControl.Items Eigenschap

Definitie

Hiermee haalt u de verzameling op die wordt gebruikt om de inhoud van de ItemsControl.

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

Waarde van eigenschap

De verzameling die wordt gebruikt om de inhoud van de ItemsControl. De standaardwaarde is een lege verzameling.

Kenmerken

Voorbeelden

In de volgende voorbeelden ziet u bindingsgegevens voor een ItemsControl. In het eerste voorbeeld wordt een klasse gemaakt MyData die een eenvoudige tekenreeksverzameling is.

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

In het volgende voorbeeld wordt het ItemsSource object van een ItemsControl aan 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)

In de volgende afbeelding ziet u het ListBox besturingselement dat in het vorige voorbeeld is gemaakt.

Keuzelijst met keuzelijst

In het volgende voorbeeld ziet u hoe u een ItemsControl met behulp van de Items eigenschap kunt vullen. In het voorbeeld worden de volgende verschillende typen items toegevoegd aan: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)

In de volgende afbeelding ziet u de ListBox gemaakt in het vorige voorbeeld.

Keuzelijst met vier typen inhoud ListBox

Houd er rekening mee dat het ItemCollection een weergave is, zodat u de functies voor weergaven kunt gebruiken, zoals sorteren, filteren en groeperen.

Als u bijvoorbeeld een exemplaar van een ListBox, hebt, myListBoxkunt u het volgende doen om de inhoud van de ListBox. In dit voorbeeld Content is de naam van de eigenschap waarop moet worden gesorteerd.

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

Houd er rekening mee dat wanneer u dit doet, als het besturingselement rechtstreeks aan een verzameling is gebonden, de standaardverzamelingsweergave wordt gebruikt en de sorteercriteria worden toegepast op alle andere besturingselementen die rechtstreeks aan dezelfde verzameling zijn gebonden. De weergave is niet de standaardweergave als de ItemsSource eigenschap is gebonden aan een CollectionViewSource.

Als uw ItemsControl gegevens rechtstreeks aan een verzameling zijn gebonden, kunt u het volgende doen om de standaardweergave op te halen:

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

U kunt ook filter-, sorteer- en groeperingscriteria opgeven in XAML of code met behulp van een CollectionViewSource.

Opmerkingen

Deze eigenschap kan worden gebruikt om items toe te voegen aan een ItemsControl. Als u een onderliggend element aan een ItemsControl object toevoegt, wordt dit impliciet toegevoegd aan het ItemCollection object voor het ItemsControl object.

Note

Deze eigenschap kan alleen worden ingesteld in Extensible Application Markup Language (XAML) via de weergegeven syntaxis van de verzameling of door het verzamelingsobject te openen en de verschillende methoden te gebruiken, zoals Add. De eigenschap voor toegang tot het verzamelingsobject zelf heeft het kenmerk Alleen-lezen en de verzameling zelf is lezen/schrijven.

Houd er rekening mee dat u de Items of de ItemsSource eigenschap gebruikt om de verzameling op te geven die moet worden gebruikt om de inhoud van uw ItemsControlbestand te genereren. Wanneer de ItemsSource eigenschap is ingesteld, wordt de Items verzameling alleen-lezen en vaste grootte gemaakt.

Wanneer ItemsSource deze wordt gebruikt, stelt u de ItemsSource eigenschap in om de verzameling te null verwijderen en herstelt u het gebruik Items, wat een lege ItemCollectionwaarde is.

Gebruik van XAML-eigenschapselement

<object>
  OneOrMoreElements
</object>

XAML-waarden

OneOrMoreElements Een of meer UIElement objecten.

Van toepassing op

Zie ook