Aracılığıyla paylaş


x:Dizi İşaretlemeyi Uzantısı

Bir işaretleme uzantısı aracılığıyla XAML'deki nesne dizileri için genel destek sağlar. Bu, [MS-XAML] içindeki x:ArrayExtension XAML türüne karşılık gelir.

XAML Nesne Öğesi Kullanımı

<x:Array Type="typeName">
  arrayContents
</x:Array>

XAML Değerleri

Değer Açıklama
typeName x:Array içereceği türün adı. typeName, XAML türü tanımlarını içeren bir XAML ad alanı için ön ekli (ve genellikle) olabilir.
arrayContents İç ArrayExtension.Items özelliğine atanan öğeler içeriği. Bu öğeler genellikle x:Array açma ve kapatma etiketlerinin içinde yer alan bir veya daha fazla nesne öğesi olarak belirtilir. Burada belirtilen nesnelerin typeNameiçinde belirtilen XAML türüne atanabilir olması beklenir.

Açıklamalar

Type, tüm x:Array nesne öğeleri için gerekli bir özniteliktir. Type parametre değerinin x:Type işaretleme uzantısı kullanması gerekmez; türün kısa adı, dize olarak belirtilebilen bir XAML türüdür.

.NET XAML Hizmetleri uygulamasında, oluşturulan dizinin giriş XAML türü ile çıkış CLR Type arasındaki ilişki, işaretleme uzantıları için hizmet bağlamından etkilenir. Çıkış Type, XAML şema bağlamını ve bağlamın sağladığı UnderlyingType hizmetini temel alan gerekli XamlType baktıktan sonra giriş XAML türünün IXamlTypeResolver.

İşlendiğinde, dizi içeriği ArrayExtension.Items iç özelliğine atanır. ArrayExtension uygulamasında bu, ArrayExtension.Itemsile temsil edilir.

.NET XAML Hizmetleri uygulamasında, bu işaretleme uzantısının işlenmesi ArrayExtension sınıfı tarafından tanımlanır. ArrayExtension korumalı değildir ve özel bir dizi türü için işaretleme uzantısı uygulamasının temeli olarak kullanılabilir.

x:Array daha çok XAML'de genel dil genişletilebilirliği için tasarlanmıştır. Ancak x:Array, yapılandırılmış özellik içeriği olarak XAML tarafından desteklenen koleksiyonları alan belirli özelliklerin XAML değerlerini belirtmek için de yararlı olabilir. Örneğin, IEnumerable kullanımı olan bir x:Array özelliğinin içeriğini belirtebilirsiniz.

x:Array bir işaretleme uzantısıdır. İşaretlem uzantıları genellikle öznitelik değerlerinin değişmez değerler veya işleyici adlarından farklı olması için bir gereksinim olduğunda uygulanır ve gereksinim yalnızca belirli tür veya özelliklere tür dönüştürücüleri koymaktan daha geneldir. x:Array, alternatif öznitelik değeri işleme sağlamak yerine iç metin içeriğinin alternatif işlenmesini sağladığından, x:Arrayx:Array kısmen bu kural için bir özel durumdur. Bu davranış, var olan bir içerik modeli tarafından desteklenmeyen türlerin bir dizide gruplanması ve adlandırılmış diziye erişilerek arka planda kod içinde başvurulması; tek tek dizi öğelerini almak için Array yöntemlerini çağırabilirsiniz.

XAML'deki tüm işaretleme uzantıları, bir XAML işlemcisinin işaretleme uzantısının öznitelik değerini işlemesi gerektiğini tanıdığı kural olan öznitelik söz diziminde ayraçları ({,})) kullanır. Genel olarak işaretleme uzantıları hakkında daha fazla bilgi için bkz. XAMLiçin Tür Dönüştürücüleri ve İşaretlemeyi Genişletme uzantıları.

XAML 2009'da, x:Array işaretleme uzantısı yerine bir dil temel öğe olarak tanımlanır. Daha fazla bilgi için bkz. Common XAML Language Primitivesiçin Yerleşik Türler.

WPF Kullanım Notları

Genellikle, bir x:Array dolduran nesne öğeleri WPF XAML ad alanında var olan öğeler değildir ve varsayılan olmayan bir XAML ad alanına bir ön ek eşlemesi gerektirir.

Örneğin, dizi düzeyinde tanımlanmış sys ön eki (ve x) ile iki dizeden oluşan basit bir dizi aşağıda verilmiştir.

<x:Array Type="sys:String"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <sys:String>Hello</sys:String>
  <sys:String>World</sys:String>
</x:Array>

Dizi öğeleri olarak kullanılan özel türler için, sınıfın XAML'de nesne öğeleri olarak örneklenme gereksinimlerini de desteklemesi gerekir. Daha fazla bilgi için bkz. WPFiçin XAML ve Özel Sınıflar.

Ayrıca bkz.