ItemsControl.ItemTemplateSelector Özellik

Tanım

Her öğeyi görüntülemek için kullanılan bir şablon seçmek için özel mantığı alır veya ayarlar.

C#
[System.ComponentModel.Bindable(true)]
public System.Windows.Controls.DataTemplateSelector ItemTemplateSelector { get; set; }

Özellik Değeri

Mantık sağlayan ve döndüren özel DataTemplateSelector bir DataTemplatenesne. Varsayılan değer: null.

Öznitelikler

Örnekler

Aşağıdaki örnekte, auctionItemDataTemplateSelector kaynak adı (bir AuctionItemDataTemplateSelector sınıfa karşılık gelir) özelliğine ItemTemplateSelectorItemsControlatanır.

XAML
<ItemsControl 
   Template="{StaticResource ScrollTemplate}" 
   ItemsSource="{Binding Source={StaticResource items_list}}"
   ItemTemplateSelector="{StaticResource auctionItemDataTemplateSelector}" >
   <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
         <StackPanel />
      </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
</ItemsControl>

Aşağıdaki örnekte, yönteminin AuctionItemDataTemplateSelector geçersiz kılınmasıyla sınıfın uygulanması gösterilmektedir SelectTemplate :

C#
using System.Windows;
using System.Windows.Controls;

namespace SDKSample
{
    public class AuctionItemDataTemplateSelector : DataTemplateSelector
    {
        public override DataTemplate 
            SelectTemplate(object item, DependencyObject container)
        {
            FrameworkElement element = container as FrameworkElement;

            if (element != null && item != null && item is AuctionItem)
            {
                AuctionItem auctionItem = item as AuctionItem;
                Window window = Application.Current.MainWindow;

                switch (auctionItem.SpecialFeatures)
                {
                    case SpecialFeatures.None:
                        return 
                            element.FindResource("AuctionItem_None") 
                            as DataTemplate;
                    case SpecialFeatures.Color:
                        return 
                            element.FindResource("AuctionItem_Color") 
                            as DataTemplate;
                }
            }

            return null;
        }
    }
}

Bu durumda, sınıfının yöntemi içinde SelectTemplate geçirilen nesnenin özelliğinin item değerine SpecialFeatures göre uygun şablonu döndürmek için bir mantık vardır. Döndürülecek şablon, enveloping Window öğesinin kaynaklarında bulunur.

özelliğini ayarladığınızdaItemTemplateSelector, ItemsControl öğesinin bağlı olduğu koleksiyondaki öğelerin her biri için yöntemini AuctionItemDataTemplateSelector otomatik olarak çağırmaya SelectTemplateItemsControl yönlendirilir. Çağrısı, veri öğesini bir nesne olarak geçirir. DataTemplate Yöntemi tarafından döndürülen daha sonra bu veri öğesini görüntülemek için kullanılır.

Başka bir örnek için bkz. Veri Şablon oluşturmaya genel bakış.

Açıklamalar

veri nesnelerinin görselleştirmesini belirtmek için öğesini kullanırsınız ItemTemplate . Tanımlanmış birden fazla şablonunuz varsa ve kullanılacak şablonu döndürmek için mantık sağlamak istiyorsanız, bu özelliği kullanırsınız. Ayarlanırsa ItemTemplate bu özelliğin yoksayıldığını unutmayın.

görsel ItemsControl özelleştirme için büyük esneklik sağlar ve birçok stil oluşturma ve şablon oluşturma özelliği sağlar. ItemContainerStyle Veri öğelerini içeren öğelerin görünümünü etkileyecek bir stil ayarlamak için özelliğini veya ItemContainerStyleSelector özelliğini kullanın. Örneğin, için ListBoxoluşturulan kapsayıcılar denetimlerdir ListBoxItem ; için ComboBoxbunlar denetimlerdir ComboBoxItem . Öğelerin düzenini etkilemek için özelliğini kullanın ItemsPanel . Denetiminizde gruplandırma kullanıyorsanız veya GroupStyleSelector özelliğini kullanabilirsinizGroupStyle.

Daha fazla bilgi için bkz. Veri Şablon oluşturmaya genel bakış.

XAML Öznitelik Kullanımı

<object ItemTemplateSelector="ResourceExtension SelectorResourceKey"/>

XAML Değerleri

ResourceExtension Aşağıdakilerden biri: StaticResource, veya DynamicResource. Stillerin kendisi sistem kaynakları veya kullanıcı tercihleri gibi olası çalışma zamanı başvurularına başvuru içermiyorsa, StaticResource performans için genellikle stil başvurusu önerilir.

SelectorResourceKeyx:Key kaynak olarak istenen seçiciye başvuran dize değeri.

Bağımlılık Özelliği Bilgileri

Tanımlayıcı alanı ItemTemplateSelectorProperty
Meta veri özellikleri olarak ayarlandı true Hiçbiri

Şunlara uygulanır

Ürün Sürümler
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Ayrıca bkz.