ItemsControl.Items Egenskap

Definition

Hämtar samlingen som används för att generera innehållet i 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

Egenskapsvärde

Samlingen som används för att generera innehållet i ItemsControl. Standardvärdet är en tom samling.

Attribut

Exempel

Följande exempel visar bindning av data till en ItemsControl. I det första exemplet skapas en klass med namnet MyData som är en enkel strängsamling.

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

I följande exempel binder objektet för ItemsSource ett ItemsControl till 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)

Följande bild visar kontrollen som ListBox skapades i föregående exempel.

Listbox-listruta

I följande exempel visas hur du fyller i en ItemsControl med hjälp Items av egenskapen . Exemplet lägger till följande olika typer av objekt i 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)

Följande bild visar den ListBox som skapades i föregående exempel.

ListBox med fyra typer av innehåll

Observera att ItemCollection är en vy, så du kan använda de vyrelaterade funktionerna, till exempel sortering, filtrering och gruppering.

Om du till exempel har en instans av en ListBox, myListBoxkan du göra följande för att sortera innehållet i ListBox. I det här exemplet Content är namnet på egenskapen som ska sorteras efter.

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

Observera att om kontrollen är direkt bunden till en samling används standardsamlingsvyn och sorteringsvillkoren tillämpas på alla andra kontroller som är bundna till samma samling direkt. Vyn är inte standardvyn om ItemsSource egenskapen är bunden till en CollectionViewSource.

Om din ItemsControl är bunden direkt till en samling kan du göra följande för att hämta standardvyn:

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

Alternativt kan du ange filtrerings-, sorterings- och grupperingsvillkor i XAML eller kod med hjälp av en CollectionViewSource.

Kommentarer

Den här egenskapen kan användas för att lägga till objekt i en ItemsControl. Om du lägger till ett underordnat objekt i ett ItemsControl objekt läggs det implicit till ItemCollection för ItemsControl objektet.

Note

Den här egenskapen kan bara anges i XAML (Extensible Application Markup Language) via samlingssyntaxen som visas, eller genom att komma åt samlingsobjektet och använda dess olika metoder, till exempel Add. Egenskapen för att komma åt själva samlingsobjektet är skrivskyddad och själva samlingen är skrivskyddad.

Observera att du använder antingen Items egenskapen eller ItemsSource för att ange den samling som ska användas för att generera innehållet i din ItemsControl. När egenskapen ItemsSource har angetts Items görs samlingen skrivskyddad och fast storlek.

När ItemsSource används, anger du ItemsSource egenskapen så att null den tar bort samlingen och återställer användningen till Items, som blir en tom ItemCollection.

Användning av XAML-egenskapselement

<object>
  OneOrMoreElements
</object>

XAML-värden

OneOrMoreElements Ett eller flera UIElement objekt.

Gäller för

Se även