Aracılığıyla paylaş


XAML'deki Genel Türler

içinde System.Xaml uygulanan .NET XAML Hizmetleri, genel CLR türlerini kullanma desteği sağlar. Bu destek, genel türlerin kısıtlamalarını tür bağımsız değişkeni olarak belirtmeyi ve genel koleksiyon örnekleri için uygun Add yöntemi çağırarak kısıtlamayı zorlamayı içerir. Bu konu başlığında, XAML'de genel türleri kullanma ve bunlara başvurma özellikleri açıklanmaktadır.

x:TypeArguments

x:TypeArguments XAML dili tarafından tanımlanan bir yönergedir. Genel bir tür tarafından yedeklenen bir XAML türünün üyesi olarak kullanıldığında, x:TypeArguments genelin kısıtlayıcı tür bağımsız değişkenlerini arka oluşturucuya geçirir. söz dizimi örnekleri içeren .NET XAML Hizmetleri kullanımıyla x:TypeArgumentsilgili başvuru söz dizimi için bkz . x:TypeArguments Yönergesi.

Bir x:TypeArguments dize aldığından ve tür dönüştürücü desteğine sahip olduğundan, genellikle XAML kullanımında bir öznitelik olarak bildirilir.

XAML düğüm akışında, tarafından x:TypeArguments bildirilen bilgiler düğüm akışındaki bir StartObject konumdan alınabilirXamlType.TypeArguments. değerinin XamlType.TypeArguments dönüş değeri, değerlerin XamlType listesidir. XAML türünün genel bir türü temsil edip etmediğini belirleme, çağrılarak XamlType.IsGenericyapılabilir.

XAML'de Genel Kurallar ve Söz Dizimi Kuralları

XAML'de genel bir tür her zaman kısıtlanmış genel olarak temsil edilmelidir. Kısıtlanmamış bir genel, XAML türü sisteminde veya XAML düğümü akışında hiçbir zaman mevcut değildir ve XAML işaretlemesinde temsil edilemez. XAML öznitelik söz diziminde, tarafından x:TypeArgumentsbaşvurulan genel bir genelin iç içe tür kısıtlaması olduğu durumlar veya genel bir tür için CLR türü başvurusu sağlayan durumlar x:Type için genel bir genele başvuru yapılabilir. Genel değerlere başvurmak ,NET XAML Hizmetleri tarafından tanımlanan sınıf aracılığıyla XamlTypeTypeConverter desteklenir.

tarafından XamlTypeTypeConverter etkinleştirilen XAML öznitelik söz dizimi formu, genel türleri ve kısıtlamaları için açılı ayraçlar kullanan tipik MSIL / CLR söz dizimi kuralını değiştirir ve bunun yerine kısıtlama kapsayıcısı için parantezleri kullanır. Bir örnek için bkz . x:TypeArguments Yönergesi.

Genel Değerler ve XAML 2009 Özellikleri

Ortak dil temel öğeleri için XAML türlerini elde etmek üzere CLR temel türlerini eşlemek yerine XAML 2009 kullanırsanız, içinde bilgi öğeleri x:TypeArgumentsolarak XAML 2009 yerleşik türlerini kullanabilirsiniz. Örneğin, aşağıdakileri bildirebilirsiniz (ön ek eşlemeleri gösterilmez, ancak x XAML 2009 için XAML dili XAML ad alanıdır):

<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>

WPF'de Genel Destek

WPF'yi özellikle hedeflerken XAML 2006 kullanımı için, x:Class ile aynı öğede x:TypeArgumentsde sağlanmalıdır ve bu öğe bir XAML belgesindeki kök öğe olmalıdır. Kök öğe, en az bir tür bağımsız değişkenine sahip genel bir türe eşlenmelidir. PageFunction<T> bunun bir örneğidir.

Genel kullanımları desteklemeye yönelik olası geçici çözümler arasında genel türler döndürebilen özel bir işaretleme uzantısı tanımlama veya genel bir türden türetilen ancak genel kısıtlamayı kendi sınıf tanımında düz hale getiren bir sarmalama sınıfı tanımı sağlama sayılabilir.

WPF'de XAML 2009 özelliklerini ile x:TypeArgumentsbirlikte kullanabilirsiniz, ancak yalnızca gevşek XAML (işaretleme derlenmemiş XAML) için kullanabilirsiniz. WPF için işaretlemeyle derlenmiş XAML ve XAML'nin BAML biçimi şu anda XAML 2009 anahtar sözcüklerini ve özelliklerini desteklememektedir.

.NET Framework 3.5 için Windows Workflow Foundation'daki özel iş akışları genel XAML kullanımını desteklemez.

Ayrıca bkz.