このドキュメントはアーカイブされており、メンテナンスされていません。

ItemsControl クラス

項目のコレクションを提示するために使用できるコントロールを表します。

名前空間: System.Windows.Controls
アセンブリ: PresentationFramework (presentationframework.dll 内)
XML 名前空間 :  http://schemas.microsoft.com/winfx/2006/xaml/presentation

[ContentPropertyAttribute("Items")] 
[LocalizabilityAttribute(LocalizationCategory.None, Readability=Readability.Unreadable)] 
[StyleTypedPropertyAttribute(Property="ItemContainerStyle", StyleTargetType=typeof(FrameworkElement))] 
public class ItemsControl : Control, IAddChild
/** @attribute ContentPropertyAttribute("Items") */ 
/** @attribute LocalizabilityAttribute(LocalizationCategory.None, Readability=Readability.Unreadable) */ 
/** @attribute StyleTypedPropertyAttribute(Property="ItemContainerStyle", StyleTargetType=System.Windows.FrameworkElement) */ 
public class ItemsControl extends Control implements IAddChild
ContentPropertyAttribute("Items") 
LocalizabilityAttribute(LocalizationCategory.None, Readability=Readability.Unreadable) 
StyleTypedPropertyAttribute(Property="ItemContainerStyle", StyleTargetType=System.Windows.FrameworkElement) 
public class ItemsControl extends Control implements IAddChild
<ItemsControl>
  Items
</ItemsControl>

コンテンツ モデル : ItemsControl オブジェクトに子を追加すると、暗黙的に ItemsControl オブジェクトの ItemCollection に追加されます。ItemsControl のコンテンツ モデルの詳細については、「ItemsControl コンテンツ モデルの概要」を参照してください。

Items プロパティまたは ItemsSource プロパティを使用して、ItemsControl の内容を生成するために使用するコレクションを指定する必要があります。ItemsSource プロパティが設定されている場合、Items コレクションは、読み取り専用および固定サイズになります。これは、このコレクションに項目を直接追加できないことを意味します。

ItemsSource が使用されている場合、このプロパティを null に設定すると、コレクションが削除され、空の ItemCollection となる Items の使用が復元されます。

ItemsControl によって提供される、スタイルとテンプレートに関連した各種プロパティの機能を説明するために用意された例を次に示します。この例では、ItemsControl は、Task オブジェクトのコレクションにバインドされています。この例にあるスタイルとテンプレートは、デモンストレーション用にすべてインラインで宣言されています。

<ItemsControl Margin="10"
              ItemsSource="{Binding Source={StaticResource myTodoList}}">
  <!--The ItemsControl has no default visual appearance.
      Use the Template property to specify a ControlTemplate to define
      the appearance of an ItemsControl. The ItemsPresenter uses the specified
      ItemsPanelTemplate (see below) to layout the items. If an
      ItemsPanelTemplate is not specified, the default is used. (For ItemsControl,
      the default is an ItemsPanelTemplate that specifies a StackPanel.-->
  <ItemsControl.Template>
    <ControlTemplate TargetType="ItemsControl">
      <Border BorderBrush="Aqua" BorderThickness="1" CornerRadius="15">
        <ItemsPresenter/>
      </Border>
    </ControlTemplate>
  </ItemsControl.Template>
  <!--Use the ItemsPanel property to specify an ItemsPanelTemplate
      that defines the panel that is used to hold the generated items.
      In other words, use this property if you want to affect
      how the items are laid out.-->
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel />
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <!--Use the ItemTemplate to set a DataTemplate to define
      the visualization of the data objects. This DataTemplate
      specifies that each data object appears with the Proriity
      and TaskName on top of a silver ellipse.-->
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <DataTemplate.Resources>
        <Style TargetType="TextBlock">
          <Setter Property="FontSize" Value="18"/>
          <Setter Property="HorizontalAlignment" Value="Center"/>
        </Style>
      </DataTemplate.Resources>
      <Grid>
        <Ellipse Fill="Silver"/>
        <StackPanel>
          <TextBlock Margin="3,3,3,0"
                     Text="{Binding Path=Priority}"/>
          <TextBlock Margin="3,0,3,7"
                     Text="{Binding Path=TaskName}"/>
        </StackPanel>
      </Grid>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
  <!--Use the ItemContainerStyle property to specify the appearance
      of the element that contains the data. This ItemContainerStyle
      gives each item container a margin and a width. There is also
      a trigger that sets a tooltip that shows the description of
      the data object when the mouse hovers over the item container.-->
  <ItemsControl.ItemContainerStyle>
    <Style>
      <Setter Property="Control.Width" Value="100"/>
      <Setter Property="Control.Margin" Value="5"/>
      <Style.Triggers>
        <Trigger Property="Control.IsMouseOver" Value="True">
          <Setter Property="Control.ToolTip"
                  Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                          Path=Content.Description}"/>
        </Trigger>
      </Style.Triggers>
    </Style>
  </ItemsControl.ItemContainerStyle>
</ItemsControl>

この例が描画されたときのスクリーンショットを次に示します。

ここに表示されていない ItemsControl の他の 2 つのスタイル関連プロパティに、GroupStyleGroupStyleSelector があります。

System.Object
   System.Windows.Threading.DispatcherObject
     System.Windows.DependencyObject
       System.Windows.Media.Visual
         System.Windows.UIElement
           System.Windows.FrameworkElement
             System.Windows.Controls.Control
              System.Windows.Controls.ItemsControl
                 System.Windows.Controls.HeaderedItemsControl
                 System.Windows.Controls.Primitives.MenuBase
                 System.Windows.Controls.Primitives.Selector
                 System.Windows.Controls.Primitives.StatusBar
                 System.Windows.Controls.TreeView

この型の public static (Visual Basicでは共有) メンバはすべて,スレッド セーフです。インスタンス メンバの場合は,スレッド セーフであるとは限りません。

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

.NET Framework

サポート対象 : 3.0
表示: