Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe ItemsControl

Representa um controle que pode ser usado para apresentar uma coleção de itens.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (em PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/xaml/presentation

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

Modelo de conteúdo: Adicionando um filho a um ItemsControl objeto adiciona implicitamente-o para o ItemCollection para o ItemsControl objeto. Para obter mais informações sobre o modelo de conteúdo para ItemsControl, consulte Visão geral de Controles de Modelos de Conteúdo.

Observe que você usar ambos o Items ou o ItemsSource propriedade para especificar a coleção deve ser usada para gerar o conteúdo do seu ItemsControl. Quando o ItemsSource propriedade é conjunto, o Items coleção é feita somente para leitura e dimensionar fixo. Isso significa que não é possível adicionar itens à coleção diretamente.

Quando ItemsSource está em uso, definindo a propriedade para null Remove da coleção e restaura o uso de Items, que será um vazio ItemCollection.

Cada ItemsControl tipo tem um tipo de contêiner correspondente. Elementos de contêiner são os objetos que contêm os itens de dados na coleção de item.Por exemplo, para ListBox, são os recipientes gerados ListBoxItem Controla a; para ComboBox, eles são ComboBoxItem controles.

The ItemsControl gera seus itens por meio do IItemContainerGenerator interface. The ItemContainerGenerator propriedade das ItemsControl é do tipo ItemContainerGenerator, que implementa o IItemContainerGenerator interface. Portanto, você pode acessar o ItemContainerGenerator objeto associado ao seu ItemsControl usando o ItemContainerGenerator propriedade. Por exemplo, se você tiver um dados-limite TreeView e você deseja obter um TreeViewItem com base em seu índice ou o seu item de dados associada, você pode usar o ItemContainerGenerator.ContainerFromIndex ou o ItemContainerGenerator.ContainerFromItem método. Como alternativa, você pode usar o ItemContainerGenerator.IndexFromContainer ou o ItemContainerGenerator.ItemFromContainer método para obter o índice ou dados item associado a um elemento determinado contêiner gerado.

Além desses usos, a IItemContainerGenerator interface é usado em cenários avançados. Normalmente, os aplicativos avançados que tenham sua própria implementação de um painel de virtualização chamam membros da interface.

O exemplo a seguir foi elaborado para ilustrar a função dos diferentes estilos e modelos relacionados propriedades fornecidas pelo ItemsControl. The ItemsControl Neste exemplo está limite a uma coleção de Task objetos. Para fins de demonstração, os estilos e modelos nesse exemplo são todos declarados embutidos.

<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 defaultis used. (For ItemsControl,
      the defaultis 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>


A seguir vemos a tela do exemplo quando renderizada:

Captura de tela de exemplo de ItemsControl

Duas outras propriedades relacionadas a estilos do ItemsControl que não são mostradas são GroupStyle e GroupStyleSelector.

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

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows Server 2003

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0


Data

História

Motivo

Julho de 2008

Novos membros adicionados: AlternationCount propriedade, AlternationIndex propriedade, ItemBindingGroup propriedade, ItemStringFormat propriedade, GetAlternationIndex método, OnAlternationCountChanged método, OnItemBindingGroupChanged método, OnItemStringFormatChanged método, AlternationCountProperty campo, AlternationIndexProperty campo, ItemBindingGroupProperty campo, ItemStringFormatProperty campo.

Alteração de recurso do SP1.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft