Spazi dei nomi XAML in xamarin. FormsXAML Namespaces in Xamarin.Forms

XAML Usa l'attributo XML xmlns per le dichiarazioni dello spazio dei nomi. Questo articolo presenta la sintassi dello spazio dei nomi XAML e viene illustrato come dichiarare uno spazio dei nomi XAML per un tipo di accesso.XAML uses the xmlns XML attribute for namespace declarations. This article introduces the XAML namespace syntax, and demonstrates how to declare a XAML namespace to access a type.

PanoramicaOverview

Esistono due dichiarazioni dello spazio dei nomi XAML che sono sempre all'interno dell'elemento radice di un file XAML.There are two XAML namespace declarations that are always within the root element of a XAML file. Il primo definisce lo spazio dei nomi predefinito, come illustrato nell'esempio di codice XAML seguente:The first defines the default namespace, as shown in the following XAML code example:

xmlns="http://xamarin.com/schemas/2014/forms"

Spazio dei nomi predefinito specifica che gli elementi definiti all'interno del file XAML senza il prefisso fa riferimento alle classi di xamarin. Forms, ad esempio ContentPage .The default namespace specifies that elements defined within the XAML file with no prefix refer to Xamarin.Forms classes, such as ContentPage.

La seconda dichiarazione dello spazio dei nomi viene utilizzato il x prefisso, come illustrato nell'esempio di codice XAML seguente:The second namespace declaration uses the x prefix, as shown in the following XAML code example:

xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

XAML vengono utilizzati prefissi per dichiarare spazi dei nomi non predefinito, con il prefisso viene usato quando si fa riferimento ai tipi nello spazio dei nomi.XAML uses prefixes to declare non-default namespaces, with the prefix being used when referencing types within the namespace. Il x dichiarazione dello spazio dei nomi specifica che gli elementi definiti all'interno di XAML con il prefisso x vengono utilizzati per gli elementi e attributi intrinseci XAML (in particolare la specifica di XAML 2009).The x namespace declaration specifies that elements defined within the XAML with a prefix of x are used for elements and attributes that are intrinsic to XAML (specifically the 2009 XAML specification).

La tabella seguente descrive il x attributi dello spazio dei nomi supportati da xamarin. Forms:The following table outlines the x namespace attributes supported by Xamarin.Forms:

CostruttoConstruct DescrizioneDescription
x:Arguments Specifica gli argomenti del costruttore per un costruttore non predefinito o per una dichiarazione dell'oggetto metodo factory.Specifies constructor arguments for a non-default constructor, or for a factory method object declaration.
x:Class Specifica il nome dello spazio dei nomi e classe per una classe definita in XAML.Specifies the namespace and class name for a class defined in XAML. Il nome della classe deve corrispondere al nome di classe del file code-behind.The class name must match the class name of the code-behind file. Si noti che questo costrutto può essere visualizzato solo nell'elemento radice di un file XAML.Note that this construct can only appear in the root element of a XAML file.
x:DataType Specifica il tipo dell'oggetto che verranno associato l'elemento XAML e relativi elementi figlio, a.Specifies the type of the object that the XAML element, and it's children, will bind to.
x:FactoryMethod Specifica un metodo factory che può essere utilizzato per inizializzare un oggetto.Specifies a factory method that can be used to initialize an object.
x:FieldModifier Specifica il livello di accesso per i campi generati per gli elementi denominati XAML.Specifies the access level for generated fields for named XAML elements.
x:Key Specifica una chiave univoca definito dall'utente per ogni risorsa in un ResourceDictionary.Specifies a unique user-defined key for each resource in a ResourceDictionary. Il valore della chiave viene usato per recuperare la risorsa XAML e viene in genere utilizzato come argomento per il StaticResource estensione di markup.The key's value is used to retrieve the XAML resource, and is typically used as the argument for the StaticResource markup extension.
x:Name Specifica un nome di oggetto di runtime per l'elemento XAML.Specifies a runtime object name for the XAML element. Impostazione x:Name è simile alla dichiarazione di una variabile nel codice.Setting x:Name is similar to declaring a variable in code.
x:TypeArguments Specifica gli argomenti di tipo generico per il costruttore di un tipo generico.Specifies the generic type arguments to the constructor of a generic type.

Per altre informazioni sul x:DataType dell'attributo, vedere associazioni compilate.For more information about the x:DataType attribute, see Compiled Bindings. Per altre informazioni sul x:FieldModifier dell'attributo, vedere modificatori di campo.For more information about the x:FieldModifier attribute, see Field Modifiers. Per altre informazioni sul x:Arguments, x:FactoryMethod, e x:TypeArguments attributi, vedere passando gli argomenti in XAML.For more information about the x:Arguments, x:FactoryMethod, and x:TypeArguments attributes, see Passing Arguments in XAML.

Nota

Oltre agli attributi dello spazio dei nomi sopra elencati, xamarin. Forms include anche le estensioni di markup che possono essere utilizzate tramite il x prefisso dello spazio dei nomi.In addition to the namespace attributes listed above, Xamarin.Forms also includes markup extensions that can be consumed through the x namespace prefix. Per altre informazioni, vedere utilizzano le estensioni di Markup XAML.For more information, see Consuming XAML Markup Extensions.

In XAML, le dichiarazioni dello spazio dei nomi ereditano da elemento padre all'elemento figlio.In XAML, namespace declarations inherit from parent element to child element. Pertanto, quando si definisce uno spazio dei nomi nell'elemento radice di un file XAML, tutti gli elementi all'interno del file ereditano la dichiarazione dello spazio dei nomi.Therefore, when defining a namespace in the root element of a XAML file, all elements within that file inherit the namespace declaration.

Dichiarazione di spazi dei nomi per tipiDeclaring Namespaces for Types

I tipi sono reperibile in XAML con la dichiarazione di uno spazio dei nomi XAML con un prefisso con la dichiarazione dello spazio dei nomi specificando lo spazio dei nomi Common Language Runtime (CLR) e, facoltativamente, un nome di assembly.Types can be referenced in XAML by declaring a XAML namespace with a prefix, with the namespace declaration specifying the Common Language Runtime (CLR) namespace name, and optionally an assembly name. Questo risultato viene ottenuto definendo i valori per le parole chiave seguenti all'interno della dichiarazione dello spazio dei nomi:This is achieved by defining values for the following keywords within the namespace declaration:

  • CLR-namespace: oppure uso: : lo spazio dei nomi CLR dichiarato nell'assembly che contiene i tipi da esporre come elementi XAML.clr-namespace: or using: – the CLR namespace declared within the assembly that contains the types to expose as XAML elements. Questa parola chiave è obbligatoria.This keyword is required.
  • assembly = : l'assembly contenente lo spazio dei nomi CLR cui viene fatto riferimento.assembly= – the assembly that contains the referenced CLR namespace. Questo valore è il nome dell'assembly, senza l'estensione di file.This value is the name of the assembly, without the file extension. Il percorso dell'assembly deve essere stabilito come riferimento nel file di progetto che contiene il file XAML che fa riferimento all'assembly.The path to the assembly should be established as a reference in the project file that contains the XAML file that will reference the assembly. Questa parola chiave può essere omessa se la clr-namespace valore è all'interno dell'assembly stesso come il codice dell'applicazione che fa riferimento ai tipi.This keyword can be omitted if the clr-namespace value is within the same assembly as the application code that's referencing the types.

Si noti che il carattere che separa le clr-namespace oppure using token dal suo valore sono un carattere due punti, mentre il carattere che separa il assembly token dal suo valore è un segno di uguale.Note that the character separating the clr-namespace or using token from its value is a colon, whereas the character separating the assembly token from its value is an equal sign. Il carattere da utilizzare tra i due token è un punto e virgola.The character to use between the two tokens is a semicolon.

Esempio di codice seguente mostra una dichiarazione dello spazio dei nomi XAML:The following code example shows a XAML namespace declaration:

<ContentPage ... xmlns:local="clr-namespace:HelloWorld" ...>
  ...
</ContentPage>

In alternativa, questo può essere scritto come:Alternatively, this can be written as:

<ContentPage ... xmlns:local="using:HelloWorld" ...>
  ...
</ContentPage>

Il local prefisso è una convenzione utilizzata per indicare che i tipi nello spazio dei nomi sono locali dell'applicazione.The local prefix is a convention used to indicate that the types within the namespace are local to the application. In alternativa, se i tipi sono in un assembly diverso, il nome dell'assembly deve anche essere definito nella dichiarazione dello spazio dei nomi, come illustrato nell'esempio di codice XAML seguente:Alternatively, if the types are in a different assembly, the assembly name should also be defined in the namespace declaration, as demonstrated in the following XAML code example:

<ContentPage ... xmlns:behaviors="clr-namespace:Behaviors;assembly=BehaviorsLibrary" ...>
  ...
</ContentPage>

Il prefisso dello spazio dei nomi viene specificato quando si dichiara un'istanza di un tipo da uno spazio dei nomi importato, come illustrato nell'esempio di codice XAML seguente:The namespace prefix is then specified when declaring an instance of a type from an imported namespace, as demonstrated in the following XAML code example:

<ListView ...>
  <ListView.Behaviors>
    <behaviors:EventToCommandBehavior EventName="ItemSelected" ... />
  </ListView.Behaviors>
</ListView>

Per informazioni sulla definizione di uno schema spazio dei nomi personalizzato, vedere XAML personalizzato Namespace schemi.For information about defining a custom namespace schema, see XAML Custom Namespace Schemas.

RiepilogoSummary

Questo articolo introdotto la sintassi dello spazio dei nomi XAML e illustrato come dichiarare uno spazio dei nomi XAML per un tipo di accesso.This article introduced the XAML namespace syntax, and demonstrated how to declare a XAML namespace to access a type. XAML Usa le xmlns attributo XML per le dichiarazioni dello spazio dei nomi e tipi è reperibile in XAML con la dichiarazione di uno spazio dei nomi XAML con un prefisso.XAML uses the xmlns XML attribute for namespace declarations, and types can be referenced in XAML by declaring a XAML namespace with a prefix.