x:TypeArguments Yönergesi
Bir genel türün kısıtlanmış tür bağımsız değişkenlerini, genel türün oluşturucusuza iletir.
XAML Öznitelik Kullanımı
<object x:TypeArguments="typeString" .../>
XAML Değerleri
object |
CLR genel türü tarafından desteklene bir XAML türünün nesne öğesi bildirimi. Varsayılan XAML ad alanı olmayan bir XAML türüne başvurursa, var olan XAML ad alanını belirtmek için objectobject bir ön ek object gerektirir. |
typeString |
ClR genel türü için tür bağımsız değişkenleri sağlar dize olarak bir veya daha fazla XAML türü adı bildiren bir dize. Ek söz dizimi notları için bkz. Açıklamalar. |
Açıklamalar
Çoğu durumda, bir dizede bilgi öğesi olarak kullanılan XAML türleri typeString ön eke sahip olur. CLR genel kısıtlamalarının (örneğin ve ) tipik türleri Int32String CLR temel sınıf kitaplıklarından gelir. Bu kitaplıklar tipik çerçeveye özgü varsayılan XAML ad alanlarına eşlenmemiştir ve bu nedenle XAML kullanımı için ön ek eşlemesi gerektirir.
Virgül sınırlayıcı kullanarak birden fazla XAML türü adı belirtebilirsiniz.
Genel kısıtlamalar genel türleri kullanıyorsa, iç içe kısıtlama türü bağımsız değişkenleri parantez () ile içerebilir.
bu tanımının x:TypeArguments .NET XAML Hizmetleri'ne özgü olduğunu ve CLR destek kullanmaya özgü olduğunu unutmayın. Dil düzeyinde bir tanım [MS-XAML] Bölüm 5.3.11'de bulunabilir.
Kullanım Örnekleri
Bu örnekler için aşağıdaki XAML ad alanı tanımları bildirilsin:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
Liste < Dizesi>
<scg:List x:TypeArguments="sys:String" ...> bir tür bağımsız değişkeni ile List<T> yeni bir String örneği.
Sözlük < Dizesi,Dize>
<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...> iki tür bağımsız Dictionary<TKey,TValue> değişkenle yeni String bir örneği sağlar.
Kuyruk < KeyValuePair < Dizesi,Dize>>
<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...> , ve iç kısıtlama Queue<T> türü bağımsız değişkenleriyle KeyValuePair<TKey,TValue> kısıtlaması olan yeni bir örneği StringString sağlar.
XAML 2006 ve WPF Genel XAML Kullanımları
WPF uygulamaları için kullanılan XAML 2006 kullanımı ve XAML için, genel olarak XAML'den gelen ve genel tür kullanımları için aşağıdaki kısıtlamalar x:TypeArguments mevcuttur:
Yalnızca bir XAML dosyasının kök öğesi, genel bir türe başvurulan genel bir XAML kullanımını destekleyebilirsiniz.
Kök öğe, en az bir tür bağımsız değişkeni ile genel bir türe eşlenmeli. PageFunction<T> bunun bir örneğidir. Sayfa işlevleri, WPF'de XAML genel kullanım desteği için birincil senaryodur.
Genel için kök öğe XAML nesne öğesi de kullanarak kısmi bir sınıf bildirerek
x:Classgerekir. WpF derleme eylemi tanımlarken bile bu durum doğrudur.x:TypeArgumentsiç içe geçmiş genel kısıtlamalara başvuramaz.
WPF 3.0 veya WPF 3.5 Bağımlılığına Sahip XAML 2009 veya XAML 2006
XAML 2006 veya XAML 2009 için .NET XAML Hizmetlerde, genel XAML kullanımıyla ilgili WPF ile ilgili kısıtlamalar gevşetildi. Destekleyen tür sisteminin ve nesne modelinin destekley olduğu XAML işaretlemesinde herhangi bir konumda genel bir nesne öğesi örneği abilirsiniz.
Ortak dil temel öğeleri için XAML türlerini elde etmek üzere CLR temel türlerini eşlemek yerine XAML 2009 kullanıyorsanız, ortak XAML Dil Temel Öğeleri için Yerleşik Türler'i bir içinde bilgi öğeleri olarak kullanabilirsiniz. Örneğin, aşağıdakini 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 ve .NET Framework 4 veya .NET Core 3.0 (veya sonraki bir) için XAML 2009 özelliklerini yalnızca gevşek XAML (işaretlemeyle derlenmiş olmayan XAML) ile birlikte x:TypeArguments kullanabilirsiniz. WPF için işaretlemeyle derlenmiş XAML ve XAML BAML biçimi şu anda XAML 2009 anahtar sözcüklerini ve özelliklerini desteklememektedir. XAML'yi işaretlemeniz gerekirse, XAML 2006 ve WPF Genel XAML Kullanımları bölümünde not edilen kısıtlamalar altında çalışmanız gerekir. BAML yalnızca .NET Framework.