ItemsControl.Items Property

Definition

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

Property Value

ItemCollection

ItemsControl의 내용을 생성하는 데 사용되는 컬렉션입니다.The collection that is used to generate the content of the ItemsControl. 기본값은 빈 컬렉션입니다.The default is an empty collection.

Attributes

Examples

다음 예제에서는 ItemsControl에 데이터를 바인딩하는 방법을 보여 줍니다.The following examples demonstrate binding data to an ItemsControl. 첫 번째 예제에서는 간단한 문자열 컬렉션인 MyData 라는 클래스를 만듭니다.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

다음 예제에서는 ItemsControlItemsSource 개체를 MyData에 바인딩합니다.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)

다음 그림은 이전 예제에서 만든 ListBox 컨트롤을 보여 줍니다.The following illustration shows the ListBox control created in the previous example.

ListBoxListBox

다음 예제에서는 Items 속성을 사용 하 여 ItemsControl를 채우는 방법을 보여 줍니다.The following example demonstrates how to populate an ItemsControl by using the Items property. 이 예제에서는 다음과 같은 다양 한 형식의 항목을 ListBox에 추가 합니다.The example adds the following different types of items to the ListBox:

  • 문자열.A string.

  • 개체입니다.A object.
  • 개체입니다.A object.
  • A Panel 기타를 포함 하는 컨트롤 UIElement 개체입니다.A Panel control that contains other UIElement objects.

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

다음 그림은 이전 예제에서 만든 ListBox를 보여 줍니다.The following illustration shows the ListBox created in the previous example.

네 가지 형식의 콘텐츠가 있는 ListBoxListBox with four types of content

ItemCollection은 뷰입니다. 따라서 정렬, 필터링 및 그룹화와 같은 뷰 관련 기능을 사용할 수 있습니다.Note that the ItemCollection is a view, so you can use the view-related functionalities such as sorting, filtering, and grouping.

예를 들어 ListBoxmyListBox인스턴스가 있는 경우 다음을 수행 하 여 ListBox내용을 정렬할 수 있습니다.For example, if you have an instance of a ListBox, myListBox, you can do the following to sort the content of the ListBox. 이 예제에서 Content은 정렬할 속성의 이름입니다.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))

이렇게 하면, 컨트롤이 컬렉션에 직접 바인딩된 경우, 기본 컬렉션 뷰는 사용, 및 정렬 기준 동일한 컬렉션에 직접 바인딩된 다른 모든 컨트롤에 적용 됩니다.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. ItemsSource 속성이 CollectionViewSource에 바인딩되면 뷰가 기본 뷰가 되지 않습니다.The view will not be the default view if the ItemsSource property is bound to a CollectionViewSource.

ItemsControl 컬렉션에 직접 바인딩된 경우에는 다음을 수행 하 여 기본 보기를 가져올 수 있습니다.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)

또는 CollectionViewSource를 사용 하 여 XAMLXAML 또는 코드에서 필터링, 정렬 및 그룹화 조건을 지정할 수 있습니다.Alternately, you can specify filtering, sorting, and grouping criteria in XAMLXAML or code by using a CollectionViewSource.

Remarks

이 속성은 ItemsControl에 항목을 추가 하는 데 사용할 수 있습니다.This property may be used to add items to an ItemsControl. ItemsControl 개체에 자식을 추가 하면 ItemsControl 개체의 ItemCollection에 해당 자식이 암시적으로 추가 됩니다.Adding a child to an ItemsControl object implicitly adds it to the ItemCollection for the ItemsControl object.

Note

이 속성은 표시 된 컬렉션 구문을 통해 XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML) 또는 컬렉션 개체에 액세스 하 고 Add와 같은 다양 한 메서드를 사용 하 여 설정할 수 있습니다.This property can only be set in 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. 컬렉션 개체 자체를 액세스 하는 속성은 읽기 전용 및 컬렉션 자체는 읽기 / 쓰기입니다.The property to access the collection object itself is read-only, and the collection itself is read-write.

Items 또는 ItemsSource 속성 중 하나를 사용 하 여 ItemsControl콘텐츠를 생성 하는 데 사용 해야 하는 컬렉션을 지정 합니다.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. ItemsSource 속성이 설정 되 면 Items 컬렉션이 읽기 전용으로 설정 되 고 크기가 고정 됩니다.When the ItemsSource property is set, the Items collection is made read-only and fixed-size.

ItemsSource를 사용 하는 경우 ItemsSource 속성을 null로 설정 하면 컬렉션이 제거 되 고 Items에 대 한 사용법이 복원 됩니다 .이는 빈 ItemCollection입니다.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.

XAML 속성 요소 사용XAML Property Element Usage

<object>  
  OneOrMoreElements  
</object>  

XAML 값XAML Values

OneOrMoreElementsOneOrMoreElements
하나 이상의 UIElement 개체입니다.One or more UIElement objects.

Applies to

See also