ItemsControl.ItemTemplateSelector Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Her öğeyi görüntülemek için kullanılan bir şablon seçmek için özel mantığı alır veya ayarlar.
public:
property System::Windows::Controls::DataTemplateSelector ^ ItemTemplateSelector { System::Windows::Controls::DataTemplateSelector ^ get(); void set(System::Windows::Controls::DataTemplateSelector ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.Controls.DataTemplateSelector ItemTemplateSelector { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.ItemTemplateSelector : System.Windows.Controls.DataTemplateSelector with get, set
Public Property ItemTemplateSelector As DataTemplateSelector
Ö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.
<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 :
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;
}
}
}
Namespace SDKSample
Public Class AuctionItemDataTemplateSelector
Inherits DataTemplateSelector
Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate
Dim element As FrameworkElement = TryCast(container, FrameworkElement)
If element isnot Nothing andalso item IsNot Nothing AndAlso TypeOf item Is AuctionItem Then
Dim auctionItem As AuctionItem = TryCast(item, AuctionItem)
Select Case auctionItem.SpecialFeatures
Case SpecialFeatures.None
Return TryCast(element.FindResource("AuctionItem_None"), DataTemplate)
Case SpecialFeatures.Color
Return TryCast(element.FindResource("AuctionItem_Color"), DataTemplate)
End Select
End If
Return Nothing
End Function
End Class
End Namespace
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 |