Diretiva de X:TypeArguments
Passagens restringindo digite os argumentos de um genérico para o construtor do tipo genérico.
XAML Attribute Usage
<object x:TypeArguments="typeString" .../>
XAML Values
object |
Uma declaração de elemento de objeto de um tipo XAML, que é apoiada por um tipo genérico do CLR. Se object se refere a um tipo XAML é que não a partir do namespace XAML padrão, object requer um prefixo de namespace XAML de indicar onde object existe. |
typeString |
Uma seqüência de caracteres que declara o XAML de um ou mais digitar nomes como seqüências de caracteres, que fornece os argumentos de tipo para o tipo genérico do CLR. Consulte os comentários para anotações de sintaxe adicional. |
Comentários
Na maioria dos casos, os tipos XAML que são usados como um item de informação em um typeString seqüência de caracteres são prefixados. Tipos típicos de restrições genéricas do CLR (por exemplo, Int32 e String) provenientes de bibliotecas de classe base do CLR. Essas bibliotecas não são mapeadas para típico padrão de framework específicos namespaces XAML e, portanto, requerem um mapeamento de prefixo para o uso do XAML.
Você pode especificar mais de um nome de tipo XAML usando um delimitador de vírgula.
Se as restrições genéricas próprios usam tipos genéricos, os argumentos de tipo de restrição aninhados podem estar contidos por parênteses ().
Observe que essa definição de x:TypeArguments é específica.NET Framework XAML Services e usando o backup do CLR. Uma definição de nível de linguagem pode ser encontrada em [MS-XAML] seção 5.3.11.
Exemplos de uso
Nestes exemplos, suponha que as seguintes definições do namespace XAML são declaradas:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
Lista de <String>
<scg:List x:TypeArguments="sys:String" ...>instancia um novo List<T> com um String tipo de argumento.
Dictionary < String, String >
<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...>instancia um novo Dictionary<TKey, TValue> com dois String argumentos de tipo.
Fila < KeyValuePair < String, String >>
<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...>instancia um novo Queue<T> que possui uma restrição de KeyValuePair<TKey, TValue> com os argumentos de tipo de restrição interna String e String.
Usos XAML genéricos 2006 de XAML e WPF
Uso do XAML 2006 e o XAML é usado para aplicativos WPF, as seguintes restrições existirem para x:TypeArguments e usos de tipo genérico do XAML em geral:
Apenas o elemento raiz de um arquivo XAML pode oferecer suporte a um uso genérico de XAML que faz referência a um tipo genérico.
O elemento raiz deve mapear para um tipo genérico com o argumento de pelo menos um tipo. An example is PageFunction<T>. As funções de página são o cenário principal para o suporte de uso genérico de XAML no WPF.
O elemento de objeto raiz elemento XAML para a classe genérica também deve declarar uma classe parcial usando x:Class. Isso é verdadeiro mesmo se a ação de compilação definindo um WPF.
x:TypeArgumentsnão é possível referenciar aninhadas restrições genéricas.
XAML de 2009 ou 2006 de XAML sem WPF 3.0 ou 3.5 do WPF dependência
No.NET Framework XAML Services para 2009 de XAML, as restrições relacionadas ao WPF no uso do XAML genérico ou XAML 2006 são relaxadas. Criar uma instância de um elemento de objeto genérico em qualquer posição na marcação XAML que o modelo de sistema e o objeto de tipo do backup pode suportar.
Se você usar o XAML 2009 em vez de mapeamento do CLR basear tipos para obter os tipos XAML primitivos de linguagem comum, você pode usar Interna de tipos primitivos comum de linguagem XAML como itens de informações em um typeString. Por exemplo, você poderia declarar o seguinte (mapeamentos de prefixo não é mostrados, mas o x é o namespace XAML de linguagem XAML para 2009 de XAML):
<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>
No WPF e direcionamento .NET Framework versão 4, você pode usar os recursos de 2009 em XAML juntamente com x:TypeArguments , mas somente para o XAML livre (XAML não é marcação-compilado). Compilado de marcação XAML para WPF e o formulário BAML do XAML não suportam atualmente os recursos e palavras-chave de XAML de 2009. Se você precisa para marcação compilar o XAML, você deve operar sob as restrições a "XAML 2006 e WPF genérico XAML usos" seção.