Dela via


x:Matrismarkeringstillägg

Ger allmänt stöd för matriser med objekt i XAML via ett markeringstillägg. Detta motsvarar den x:ArrayExtension XAML-typen i [MS-XAML].

Användning av XAML-objektelement

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

XAML-värden

Värde Beskrivning
typeName Namnet på den typ som din x:Array ska innehålla. typeName kan vara (och ofta är) prefix för ett XAML-namnområde som innehåller XAML-typdefinitionerna.
arrayContents Objektinnehållet som har tilldelats den inbyggda egenskapen ArrayExtension.Items. Vanligtvis anges dessa objekt som ett eller flera objektelement som finns i x:Array inledande och avslutande taggar. Objekt som anges här förväntas kunna tilldelas till den XAML-typ som anges i typeName.

Anmärkningar

Type är ett obligatoriskt attribut för alla x:Array objektelement. Ett Type parametervärde behöver inte använda ett x:Type markeringstillägg. det korta namnet på typen är en XAML-typ, som kan anges som en sträng.

I implementeringen av .NET XAML Services påverkas relationen mellan indatatypen XAML och utdata-CLR-Type för den skapade matrisen av tjänstkontexten för påläggstillägg. Utdata Type är UnderlyingType av XAML-indatatypen, efter att ha letat upp de nödvändiga XamlType baserat på XAML-schemakontexten och den IXamlTypeResolver tjänst som kontexten tillhandahåller.

När den bearbetas tilldelas matrisinnehållet till den ArrayExtension.Items inbyggda egenskapen. I den ArrayExtension implementeringen representeras detta av ArrayExtension.Items.

I implementeringen av .NET XAML Services definieras hanteringen för det här påläggstillägget av klassen ArrayExtension. ArrayExtension är inte förseglad och kan användas som grund för en implementering av markeringstillägg för en anpassad matristyp.

x:Array är mer avsett för utökning av allmänna språk i XAML. Men x:Array kan också vara användbart för att ange XAML-värden för vissa egenskaper som tar XAML-samlingar som deras strukturerade egenskapsinnehåll. Du kan till exempel ange innehållet i en IEnumerable egenskap med en x:Array användning.

x:Array är ett tillägg för markering. Markeringstillägg implementeras vanligtvis när det finns ett krav på att escape-attributvärden ska vara andra än literalvärden eller hanterarnamn, och kravet är mer globalt än att bara placera typkonverterare på vissa typer eller egenskaper. x:Array är delvis ett undantag från den regeln eftersom x:Array i stället för att tillhandahålla alternativ attributvärdehantering tillhandahåller alternativ hantering av dess inre textinnehåll. Det här beteendet gör det möjligt för typer som kanske inte stöds av en befintlig innehållsmodell att grupperas i en matris och refereras senare i kod bakom genom att komma åt den namngivna matrisen. du kan anropa Array metoder för att hämta enskilda matrisobjekt.

Alla påläggstillägg i XAML använder klammerparenteserna ({,}) i attributsyntaxen, vilket är den konvention som en XAML-processor känner igen att ett markeringstillägg måste bearbeta attributvärdet. Mer information om markeringstillägg i allmänhet finns i Type Converters and Markup Extensions for XAML.

I XAML 2009 definieras x:Array som ett primitivt språk i stället för ett tillägg för markering. Mer information finns i inbyggda typer för vanliga XAML-språkprimitiver.

WPF-användningsanteckningar

Vanligtvis är objektelementen som fyller i en x:Array inte element som finns i WPF XAML-namnområdet och kräver en prefixmappning till ett XAML-namnområde som inte är standard.

Följande är till exempel en enkel matris med två strängar, med prefixet sys (och även x) som definierats på matrisnivå.

<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>

För anpassade typer som används som matriselement måste klassen också ha stöd för kraven för att instansieras i XAML som objektelement. Mer information finns i XAML och anpassade klasser för WPF.

Se även