This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

ItemsControl الفئة

Visual Studio 2010

يمثل عنصر تحكم يمكن استخدامه إلى تقديم مجموعة من عناصر.

مساحة الاسم:  System.Windows.Controls
التجميع:  PresentationFramework (في PresentationFramework.dll)
XMLNS لـ XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

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

ItemsControl هو نوعا من Controlالتي يمكن أن تحتوي على عناصر متعددة، مثل السلاسل أو الكائنات، أو عناصر غير ذلك. يبين المثال التالي ListBoxعنصر تحكم الذي يحتوي على أنواع عناصر المختلفة التالية:

مربع القائمة الذي يحتوي على عدة أنواع من الكائنات

مربع قائمة به أربعة أنواع من المحتوى

استخدام أي من Itemsأو ItemsSourceخاصية إلى تعيين المجموعة إلى استخدام إلى إنشاء المحتوى الخاص بك ItemsControl. يمكنك تعيين ItemsSourceخاصية إلى أي نوع بتنفيذ IEnumerable. ItemsSource هو يستخدم عادة ل dهوplay جمع بيانات أو ربطهاItemsControlلكائن المجموعة.

إذا كنت لا تريد إلى استخدام كائن يطبق IEnumerableإلى ملء ItemsControl، يمكنك إضافة عناصر باستخدام Itemsخاصية. عناصر الموجودة في ItemsControlأن أنواع مختلفة. على سبيل المثال، على ListBoxيمكن أن يحتوي أحد العنصر الذي هو سلسلة وآخر العنصر الذي هو Image.

عند ItemsSourceخاصية هو معينة، Itemsالتعيين هو التعيين للقراءة-فقط وثابت-الحجم. وهذا يعني أنه لا يمكنك إضافة عناصر إلى مجموعة مباشرة. عند ItemsSourceهو قيد استخدم، قم بتعيين خاصية إلى nullقم بإزالة المجموعة وقم باستعادة استخدم إلى Items، التي ستكون فارغ ItemCollection.

كل ItemsControlلدى نوع عنصر المقابلة حاوية. نوع حاوية العنصر المطابق لكل ItemsControlيلحق Itemإلى له اسم. ل مثال، ل ListBox، يتم حاويات العنصر ListBoxItemالتحكم; ل ComboBox، فهي ComboBoxItemعناصر التحكم. يمكنك بوضوح إنشاء نوع حاوية لكل عنصر في ItemsControl، ولكنه هو غير ضروري. عندما لا تنشئ نوع الحاوية بوضوح، أي إنشاء الذي يحتوي على بيانات العنصر في العنصر مجموعة. على سبيل المثال، إذا قمت بربط مجموعة من الكائنات سلسلة إلى ItemsSourceخاصية ListBox، فقم بتوليد شكل غير صريح ListBoxItemالكائنات، ولكن ListBoxتوليد واحد لكل سلسلة. يمكنك الوصول إلى حاوية عنصر الذي تم إنشاؤه باستخدام ItemContainerGeneratorخاصية.

خصائص التبعيه هذا عنصر تحكم قد يتم تعيين عنصر تحكم النمط الافتراضي. إذا كانت خاصية هو تعيين بالنمط الإفتراضى، الخاصية قد تتغير من قيمته الافتراضية عند ظهور عنصر التحكم في تطبيق. النمط الافتراضي هو يفرضها أي سمة سطح المكتب هو استخدامها عند تطبيق هو قيد التشغيل. للحصول على مزيد من المعلومات، راجع http://انتقال.microsoft.com/fwlink/?LinkID=158252 .

تبين الأمثلة التالية لربط بيانات ItemsControl. أول مثال إنشاء فئة تسمى MyDataهو سلسلة بسيطة مجموعة.


public class MyData : ObservableCollection<string>
{
    public MyData()
    {
        Add("Item 1");
        Add("Item 2");
        Add("Item 3");
    }
}


ما يلي مثال ربط ItemsSourceمن لعبة ItemsControlإلى 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);


يبين المثال التالي ListBoxتاريخ الإنشاء عنصر التحكم في المثال السابق.

مربع قائمة

The following مثال demonstrates how إلى يملأ an ItemsControl by using the Items property. The مثال adds the following different أنواع of items إلى the 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.Items>-->
</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);


The following illustration shows the ListBox created in the السابق مثال.

مربع قائمة به أربعة أنواع من المحتوى

The following مثال illustrates how إلى استخدم the different styling و templating-related خصائص that are provided by the ItemsControl. The ItemsControl in this مثال هو حدود إلى a مجموعة of 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>


The following illustration هو a screenshot of the مثال when it هو rendered.

لقطة شاشة لمثال ItemsControl

اثنين من الخصائص ذات الصلة بالنمط من ItemsControl اللتين لا تظهران هنا هم GroupStyle و 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.DataGridCellsPresenter
                System.Windows.Controls.Primitives.DataGridColumnHeadersPresenter
                System.Windows.Controls.Primitives.MenuBase
                System.Windows.Controls.Primitives.Selector
                System.Windows.Controls.Primitives.StatusBar
                System.Windows.Controls.TreeView

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008, نظام التشغيل Windows Server 2003

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0

NET Framework. Client Profile

مدعوم في: 4
إظهار: