Partilhar via


x:Array de marcação de extensão

Fornece suporte geral para matrizes de objetos em XAML por meio de uma extensão de marcação. Isso corresponde do x:ArrayExtension tipo XAML em [MS-XAML].

XAML Object Element Usage

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

XAML Values

typeName

O nome do tipo que o x:Array conterá. typeNamepode ser (e geralmente é) prefixados para XAML namespace que contém o XAML definições de tipo.

arrayContents

O conteúdo de itens que está atribuído a intrínseca ArrayExtension.Items propriedade. Normalmente, esses itens são especificados como um ou mais elementos de objeto contidos dentro de x:Array de abertura e fechamento de marcas. Objetos especificados aqui são esperados ser pode ser atribuído para o tipo XAML especificado em typeName.

Comentários

Type is a required attribute for all x:Array object elements. A Type o valor do parâmetro não precisa usar um x:Type a extensão de marcação; o nome curto do tipo é um tipo XAML, o que pode ser especificado como uma seqüência de caracteres.

No.Implementação de serviços de XAML do NET Framework, a relação entre o tipo de entrada de XAML e a saída do CLR Type da matriz criada é influenciada pelo contexto do serviço para as extensões de marcação. A saída Type é o UnderlyingType do tipo de entrada XAML, depois de pesquisar o necessário XamlType com base no contexto do esquema XAML e o IXamlTypeResolver service fornece de contexto.

Quando processado, o conteúdo da matriz é atribuído para o ArrayExtension.Items propriedade intrínseca. No ArrayExtension implementação, é representado por ArrayExtension.Items.

No.Implementação de serviços de XAML do NET Framework, o tratamento para a extensão de marcação é definido pelo ArrayExtension classe. ArrayExtensionnão é selado e poderia ser usado como base para uma implementação de extensão de marcação para um tipo de matriz personalizado.

x:Arrayé que mais destinado geral extensibilidade da linguagem em XAML. Mas x:Array também pode ser útil para especificar valores XAML de determinadas propriedades que levam a coleções de suporte de XAML como seu conteúdo estruturada de propriedade. Por exemplo, você poderia especificar o conteúdo de um IEnumerable propriedade com um x:Array uso.

x:Array is a markup extension. Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than just putting type converters on certain types or properties. x:Arrayé uma exceção a essa regra parcialmente, porque em vez de fornecer o tratamento de valor do atributo alternativo, x:Array fornece tratamento alternativo de seu conteúdo de texto interno. Esse comportamento permite que os tipos que não podem ser suportados por um modelo de conteúdo existente sejam agrupados em uma matriz e referenciados posteriormente no code-behind, acessando o array nomeado. Você pode chamar Array métodos para obter itens do array individual.

Todas as extensões de marcação XAML usam as chaves ({,}) em sua sintaxe de atributo, que é a convenção pelo qual um processador XAML reconhece que a extensão de marcação deve processar o valor do atributo. Para obter mais informações sobre extensões de marcação, em geral, consulte Digite conversores e extensões de marcação XAML.

No XAML de 2009, x:Array é definido como um idioma primitivo em vez de uma extensão de marcação. For more information, see Tipos internos primitivos comum de linguagem XAML.

Notas de uso do WPF

Normalmente, os elementos do objeto que preencher um x:Array não são elementos que existem na WPF namespace XAML e exigem um mapeamento de prefixo para um namespace XAML não padrão.

Por exemplo, a seguinte é uma matriz de seqüências de caracteres de dois, com o sys prefixo (e também x) definidas no nível do array.

[xaml]

<x:Array Type="sys:String" xmlns:x="https://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>

Para tipos personalizados que são usados como elementos de matriz, a classe também deve suportar os requisitos para que seja instanciado no XAML, como elementos do objeto. For more information, see Classes de personalizadas para WPF e XAML.

Consulte também

Conceitos

As extensões de marcação e o WPF XAML

Outros recursos

Tipos migradas do WPF para System.Xaml