내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

ItemsControl.Items 속성

2013-12-13

컨트롤의 내용을 생성하는 데 사용된 컬렉션을 가져옵니다.

Namespace:  System.Windows.Controls
어셈블리:  System.Windows(System.Windows.dll)
XMLNS for XAML: xmlns에 매핑되지 않습니다.

public ItemCollection Items { get; }
<itemsControl>
  oneOrMoreItems
</itemsControl>

XAML 값

oneOrMoreItems

하나 이상의 개체 요소입니다.

속성 값

형식: System.Windows.Controls.ItemCollection
컨트롤의 내용을 생성하는 데 사용되는 컬렉션이거나(있는 경우), 그렇지 않으면 null입니다. 기본값은 빈 컬렉션입니다.

Items 속성에 항목을 추가하거나 ItemsSource 속성을 데이터 컬렉션에 바인딩하여 ItemsControl에 항목을 추가할 수 있습니다. 여러 형식의 개체를 Items에 추가할 수 있습니다. ItemsSourcenull이 아니면 항목 속성의 항목은 읽기 전용입니다. 개체를 추가하거나 Items 속성의 개체를 변경할 수 없습니다.

다음 예제에서는 ItemsControl에서 상속되는 ListBox를 만들고 여러 형식의 개체를 Items 속성에 추가합니다. 이 예제에서는 <ListBox.Items> 또는 <ItemCollection> 태그를 사용하지 않습니다. 항목을 <ListBox> 또는 다른 모든 ItemsControl에 직계 자식 요소로 추가할 수 있습니다.


<ListBox xmlns:sys="clr-namespace:System;assembly=mscorlib">

  <sys:String>This is a string in a ListBox</sys:String>

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


앞의 예제에서는 다음 그림과 유사한 출력을 생성합니다.

여러 형식의 개체를 사용하는 ListBox

A ListBox that contains strings and UIElements.

다음 예제에서는 ItemsControl에서 상속되는 ListBox를 만들고 Items 속성에 문자열을 추가합니다. 이 예제의 경우 srcxmlns:src="clr-namespace:ItemsControlSnippets"로 정의됩니다.


  <StackPanel Grid.Column="0" xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <StackPanel.Resources>
      <src:Items x:Key="items"/>
    </StackPanel.Resources>

    <ListBox Name="lb1" Margin="0,5,0,5" >
      <sys:String>Item 1</sys:String>
      <sys:String>Item 2</sys:String>
      <sys:String>Item 3</sys:String>
      <sys:String>Item 4</sys:String>
      <sys:String>Item 5</sys:String>
    </ListBox>
    <TextBlock Name="tb1" />
</StackPanel>


다음 예제에서는 이전 예제에 나온 ListBoxItems 속성에서 각 문자열을 반복하고 각 항목을 TextBlock, tb1에 추가합니다. 또한 ListBox의 첫 번째 항목 값을 변경합니다. 이전 예제에서 ItemsSource 속성을 설정한 것이 아니라 Items 속성에 항목을 추가했기 때문에 이 작업이 가능합니다.


lb1.Items[0] = "Change this item";
System.Text.StringBuilder sb = new System.Text.StringBuilder();

foreach (object item in lb1.Items)
{
    sb.AppendLine(item.ToString());

}

tb1.Text = sb.ToString();


다음 예제에서는 ListBox를 만들고 ItemsSource 속성을 문자열의 컬렉션으로 설정합니다.


<StackPanel Grid.Column="1">
  <StackPanel.Resources>
    <src:Items x:Key="items"/>
  </StackPanel.Resources>

  <ListBox Name="lb2" ItemsSource="{Binding Source={StaticResource items}}"/>
  <TextBlock Name="tb2"/>
</StackPanel>


다음 예제에서는 이전 예제에 나온 ListBoxItems 속성에서 각 문자열을 반복하고 각 항목을 TextBlock, tb2에 추가합니다. Items 속성에는 ListBox가 바인딩된 문자열의 컬렉션이 들어 있습니다. Items 속성을 사용하여 문자열을 가져올 수 있지만 문자열을 추가하거나 변경할 수 없습니다.


//lb2.Items[0] = "Change this item"; //Raises an exception.
System.Text.StringBuilder sb2 = new System.Text.StringBuilder();

foreach (object item in lb2.Items)
{
    sb2.AppendLine(item.ToString());

}

tb2.Text = sb2.ToString();


다음 예제에서는 ListBox가 바인딩되는 문자열의 컬렉션을 보여 줍니다.


public class Items : 
    System.Collections.ObjectModel.ObservableCollection<string>
{
    public Items()
    {
        Add("Item 1");
        Add("Item 2");
        Add("Item 3");
        Add("Item 4");
        Add("Item 5");
    }
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft