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.

TabControl.ContentTemplateSelector الخاصية

Visual Studio 2010

الحصول أو تعيين DataTemplateSelectorوالذي يوفر منطق مخصص لاختيار قالب يستخدم لعرض المحتوى في عنصر التحكم.

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

public DataTemplateSelector ContentTemplateSelector { get; set; }
<object>
  <object.ContentTemplateSelector>
    <MyDataTemplateSelectorImplementation .../>
  </object.ContentTemplateSelector>
</object>

<object ContentTemplateSelector="{ResourceExtension DataTemplateSelectorClassKey}"/>

قيم XAML

ResourceExtension

واحد من التاليين: StaticResource أو DynamicResource. انظر نظرة عامة على الموارد

DataTemplateSelectorClassKey

المفتاح الذي يقوم بتعريف التطبيق المحدد التي يتم طلبها. يشير المفتاح إلى فئة مشتقة التي تقوم بتنفيذ عملية SelectTemplateيمنع. لمعلومات حول كيفية إلى تعيين فئة cusإلىm الخاص بك، راجع تعيين مساحة الاسم و مساحات الأسماء XAML. يمكنك أيضا برمجياً إضافة مثيل لجهاز DataTemplateSelectorclكـs كـ مورد إلى مورد القاموس.

MyDataTemplateSelectorImplementation

اشتقاق فئة من DataTemplateSelectorويتجاوز SelectTemplate. لمعلومات حول كيفية إلى تعيين فئة cusإلىm الخاص بك، راجع تعيين مساحة الاسم و مساحات الأسماء XAML.

قيمة الخاصية

النوع: System.Windows.Controls.DataTemplateSelector
ContentTemplateSelector . يكون الإعداد الافتراضي هو null.

معرّف الحقل

ContentTemplateSelectorProperty

تعيين خصائص بيانات التعريف إلى true

لا يوجد

بشكل عام، تقوم بإنشاء DataTemplateSelectorإذا كان لديك المزيد DataTemplateلنفس نوع الكائنات والتي تحتاج إلى توفير المعلومات المنطقية الخاصة بك باختيار DataTemplateلتطبيق يستند إلى الخصائص لكل كائن بيانات. لاحظ أنه إذا كان لديك الكائنات مختلفة الأنواع، يمكنك التعيين DataTypeخاصية تشغيل DataTemplate. إذا فعلت ذلك، ثم هناك هو لست بحاجة إلى إنشاء DataTemplateSelector. علاوة على ذلك، إذا كان لديك الكائنات من نفس النوع ولكن مع مختلف خصائص، كما يمكنك استخدام DataTriggerأو محوّل بيانات. لمزيد من المعلومات، راجع نظرة عامة حول Templating البيانات.

إلى إنشاء selecإلىr قالب، قم بإنشاء فئة التي ترث من DataTemplateSelectorوتجاوز SelectTemplateالأسلوب. بعد الفصل الدراسي هو تعريف، يمكنك تعيين مثيل للفئة إلى خاصية محدد القالب للعنصر الخاص بك.

إذا كان كلا ContentTemplateSelectorو ContentTemplateخصائص عبارة عن مجموعة، ثم th هو خاصية هو تجاهل.

يستخدم المثال التالي ContentTemplateSelectorخاصية إلى عرض المحتوى TabItemبشكل مختلف، اعتماداً تشغيل homeإلىwn للشخص المحدد.


<DataTemplate x:Key="DetailTemplate">
  <Border Width="300" Height="100" Margin="20"
          BorderBrush="Aqua" BorderThickness="1" Padding="8">
    <Grid>
      <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100"/>
        <ColumnDefinition/>
      </Grid.ColumnDefinitions>
      <TextBlock Grid.Row="0" Grid.Column="0" Text="First Name:"/>
      <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=FirstName}"/>
      <TextBlock Grid.Row="1" Grid.Column="0" Text="Last Name:"/>
      <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=LastName}"/>
      <TextBlock Grid.Row="2" Grid.Column="0" Text="Home Town:"/>
      <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Path=HomeTown}"/>
    </Grid>
  </Border>
</DataTemplate>

<DataTemplate x:Key="SeattleTemplate">
  <DataTemplate.Resources>
    <Style TargetType="TextBlock">
      <Setter Property="FontSize" Value="16"/>
    </Style>
  </DataTemplate.Resources>
  <Border Width="300" Height="100" Margin="20"
          BorderBrush="DarkSeaGreen" BorderThickness="3" Padding="15">
    <Grid>
      <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="120"/>
        <ColumnDefinition/>
      </Grid.ColumnDefinitions>
      <TextBlock Grid.Row="0" Grid.Column="0" Text="Please welcome"/>
      <DockPanel Grid.Row="0" Grid.Column="1" >
        <TextBlock Text="{Binding Path=FirstName}"/>
        <TextBlock Text=" "/>
        <TextBlock Text="{Binding Path=LastName}"/>
      </DockPanel>
      <TextBlock Grid.Row="1" Grid.ColumnSpan="2" Text="from the Emerald City!"/>
    </Grid>
  </Border>
</DataTemplate>


...


<!--Bind to the collection MyFriends and use a DataTemplateSelector
to specify the appearance of the content.-->
<TabControl Name="tabCtrl1" Width="400" Height="200" 
         ItemsSource="{Binding Source={StaticResource MyFriends}}"
         ContentTemplateSelector="{StaticResource PersonSelector}"/>



public class PersonTemplateSelector : DataTemplateSelector
{
    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {

        // The content of each TabItem is a Person object.
        if (item is Person)
        {
            Person person = item as Person;

            Window win = Application.Current.MainWindow;

            // Select one of the DataTemplate objects, based on the 
            // person's home town.
            if (person.HomeTown == "Seattle")
            {
                return win.FindResource("SeattleTemplate") as DataTemplate;
            }
            else
            {
                return win.FindResource("DetailTemplate") as DataTemplate;

            }
        }

        return null;
    }

}


نظام التشغيل 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
إظهار: