J'avais un VB projeté et converti en C # à l'aide d'outils de conversion en ligne. Maintenant, le problème est que xaml
et xaml.cs
ne se connectent pas, c’est-à-dire qu’ils ne reconnaissent pas leurs dépendances (zone rouge dans la figure). En fait, il devrait ressembler à Window1 Files (zone verte dans l'image.) Comment puis-je atteindre cet objectif.
Je suis en train d’essayer WPF, alors c’est peut-être une question de profane.
C’est simple, essayez d’ajouter des éléments existants au projet et de sélectionner les fichiers XAML (pas les fichiers .cs, etc.) dans une liste de formats. Dans VS2010, cela aide.
Si vous ne pouvez pas obtenir le IDE pour le faire (message de Papa John), vous pouvez le faire en modifiant le fichier du projet.
Ces informations sont dans le fichier .csproj (qui est un fichier XML - vous pouvez l'ouvrir dans un éditeur de texte ou en cliquant dessus avec le bouton droit de la souris, en choisissant "décharger" puis en l'ouvrant - choisissez reload pour le charger comme projet à nouveau).
Voici les informations à rechercher, vous devrez ajouter la balise "DependentUpon".
<Compile Include="TheFile.xaml.cs">
<DependentUpon>TheFile.xaml</DependentUpon>
</Compile>
La meilleure façon !!!
Je suis tombé sur le même. J'ai le moyen de sortir. Voici comment obtenir le fichier .xaml.cs imbriqué sous le fichier .xaml dans l'Explorateur de solutions:
Utilisation d'une solution PCL Xamarin:
1) Allez dans votre dossier PCL et ouvrez votre MySolution.csproj fichier
2) Il devrait y avoir plusieurs groupes de balises <ItemGroup>
. L’un d’eux déclare les balises <EmbeddedResource>
et l’autre contient, <Compile> <DependentUpon></DependentUpon></Compile>
des groupes de balises.
3) Pour que les fichiers MyPage.xaml et MyPage.xaml.cs soient liés, vous devez disposer d’un groupe de xml qui déclare votre page xaml.
<EmbeddedResource Include="MyPage.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
<LogicalName>MyPage.xaml</LogicalName>
</EmbeddedResource>
<Compile Include="MyPage.xaml.cs">
<DependentUpon>MyPage.xaml</DependentUpon>
</Compile>
Notez que si votre page se trouve dans un dossier, vous devez le spécifier comme suit:
<Compile Include="Views\MyPage.xaml.cs">
<DependentUpon>MyPage.xaml</DependentUpon>
</Compile>
<EmbeddedResource Include="Views\MyPage.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
<LogicalName>MyPage.xaml</LogicalName>
</EmbeddedResource>
Notez que cela fonctionne avec OSX et Windows
Utilisation de la solution Xamarin Shared Code:
1) Allez dans votre dossier de projet après avoir déchargé le projet partagé
2) Recherchez le fichier de projets et modifiez l’ajout de la balise DependentUpon comme décrit dans les autres réponses ci-dessus.
3) Enregistrez le fichier
4) Retournez dans Visual Studio et vous devriez obtenir une boîte de dialogue vous permettant de tout recharger ou tout simplement d'ouvrir à nouveau le projet.
Si vous obtenez l'extension de fichier imbriquée, vous pouvez le faire en cliquant avec le bouton droit de la souris sur des fichiers portant le même nom et en choisissant "imbriquer automatiquement", ou vous pouvez l'imbriquer manuellement.
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileNesting
Dans un projet partagé, il y a un fichier .shproj au lieu d'un fichier .csproj et les éléments et n'existent pas. Cependant, j’ai trouvé qu’il existait également un fichier .projitems et que l’ajout d’une section à cet endroit, comme décrit ci-dessus, entraînait la liaison des fichiers .xaml et .cs
Une solution encore plus simple et rapide pour les projets Xamarin Forms, inutile de toucher le fichier csproj, solution très rapide.
Assurez-vous que Show All Files
est sélectionné pour l'explorateur de solutions - il peut être activé par défaut.
Exclude from Project
Include in Project
Ils doivent maintenant tous être imbriqués correctement et toutes les modifications nécessaires au fichier .csproj seront effectuées.
Vous pouvez avoir une erreur InitializeComponent() does not exist in the current context)
après ceci . Si tel est le cas, la solution simple est ..
Build Action
de Page
par Embedded Resource
.