Je tente de définir des composants réutilisables dans mon application xamarin. Mon intention est d'utiliser le même xaml dans plusieurs fichiers. Par exemple, je dois définir un en-tête commun pour mon application. J'ai essayé de l'implémenter de la manière suivante: Définir xaml requis dans un fichier séparé. Utilisez le nom de classe associé pour la réutilisation dans tout autre xaml.Implémenter des éléments réutilisables dans des formulaires xamarin
XAML réutilisables:
<?xml version="1.0" encoding="utf-8" ?>
<StackLayout xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AppHeader" BackgroundColor="White"
Spacing="1"
VerticalOptions="Start">
<StackLayout Padding="0,10,0,10"
BackgroundColor="Blue"
Orientation="Horizontal"
Spacing="0">
<Label
Text="AppName"
HorizontalTextAlignment="Center"
HorizontalOptions="Center"
TextColor="White"
></Label>
</StackLayout>
</StackLayout>
classe associée:
public partial class AppHeader : StackLayout
{
public AppHeader()
{
InitializeComponent();
}
}
Utilisation en XAML
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:common="clr-namespace:MyApp;assembly=MyApp"
x:Class="MyApp.SampleView">
<StackLayout>
<common:AppHeader></common:AppHeader>
</StackLayout>
</ContentPage>
Pendant l'exécution de l'application, Im obtenir l'erreur suivante pour le fichier XAML réutilisable:
"Le nom 'InitializeComponent' n'existe pas dans le contexte actuel"
La mise en œuvre semble simple, mais je ne suis pas capable d'identifier ce qui manque. Une solution pour cela? Toute aide serait grandement appréciée. Merci
Dans votre 'StackLayout' vous avez un attribut pour votre classe:' x:. class = « AppHeader » 'Si je ne me trompe pas, vous devez spécifier l'espace de noms complet là-bas ainsi que le nom de votre classe –
Vous avez raison. Fournir l'espace de noms complet a résolu le problème – user3165999
Laissez-moi le mettre à jour pour que vous puissiez l'accepter –