web-dev-qa-db-fra.com

Comment connecter des fichiers xaml et xaml.cs

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.

Solution Explorer

Je suis en train d’essayer WPF, alors c’est peut-être une question de profane.

48
Marshal

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.

68
Papa John

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>
44
JMarsch

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:

  1. Dans l'Explorateur de fichiers Windows (en dehors de Visual Studio), ouvrez le dossier contenant les fichiers requis.
  2. Sélectionnez les deux fichiers (.xaml et .xaml.cs) ensemble.
  3. Faites-le glisser sur le nom de votre projet dans l'explorateur de solutions.
  4. C'est fait! :)
15
Hitsa

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

6
Harry

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.

2
dracosveen

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

1
Kris Coleman

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

1
john.gleeson

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.

  1. Sélectionner tous les fichiers affectés
  2. Clic droit> Exclude from Project
  3. Sélectionnez à nouveau les mêmes fichiers (devrait être effacé)
  4. Clic droit> 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 ..

  • Sélectionnez tous les éléments concernés et remplacez Build Action de Page par Embedded Resource.
0
Bejasc