Xamarin.Forms - InitializeComponent ist nicht vorhanden, wenn eine neue Seite erstellt wird
Ich bin mit Visual Studio ausprobieren Xamarin.Formen. Ich versuche dem guide Folgen:
http://developer.xamarin.com/guides/cross-platform/xamarin-forms/xaml-for-xamarin-forms/getting_started_with_xaml/
Kurz gesagt, erstelle ich einen Xamarin.Formen-Lösung, mit einem PCL-und dann versuchen, fügen Sie einen Forms XAML Page
auf das PCL-Projekt.
Den code-behind, die dann erstellt wird sieht so aus:
public partial class Page1 : ContentPage
{
public Page1()
{
InitializeComponent();
}
}
Hier das problem, dass InitializeComponent();
ist rot.
Wenn ich versuche, bekomme ich mitgeteilt, dass The name 'InitializeComponent' does not exist in the current context
Ich habe etwa auf der Suche nach Lösungen und, obwohl andere hatten die gleichen Probleme, deren Lösungen nicht für mich arbeiten. Hier ist ein Vorschlag, den ich versuchte zu verwenden:
http://blog.falafel.com/xamarin-error-initializecomponent-does-not-exist-in-the-current-context/
Bitte lassen Sie mich wissen, wenn Sie haben eine Lösung für dieses problem. Danke!
Update:
Meinem PCL (das ist, wo ich zusätzlich zu meiner XAML-Seite) enthält:
App.cs:
public class App : Application
{
public App()
{
//The root page of your application
MainPage = new ContentPage
{
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Center,
Children = {
new Label {
XAlign = TextAlignment.Center,
Text = "Welcome to Xamarin Forms!"
}
}
}
};
}
protected override void OnStart()
{
//Handle when your app starts
}
protected override void OnSleep()
{
//Handle when your app sleeps
}
protected override void OnResume()
{
//Handle when your app resumes
}
}
Und meiner XAML-Seite:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamaTest.MyXamlPage">
<Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>
Code-behind:
public partial class MyXamlPage : ContentPage
{
public MyXamlPage()
{
InitializeComponent();
}
}
InformationsquelleAutor der Frage user2915962 | 2015-03-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE:
Dieser Fehler in der Regel nicht angezeigt, in VS 2015, wenn es funktioniert, hier meine ursprüngliche Antwort:
Die Lösung gefunden!
Klicken Sie rechts auf die .XAML-Datei, wählen Sie Eigenschaften.
Werden Sie sehen, eine Eigenschaft, die man als Benutzerdefiniertes Tool. Ändern Sie dessen Wert von
MSBuild:Compile
zuMSBuild:UpdateDesignTimeXaml
Das wird das problem lösen.
Weiß nicht, über die downvote, aber hier ist mein screenshot:
UPDATE:
Er taucht selten auf. Wenn Sie es tut, Sie einfach öffnen Sie die Xaml-und die code-behind-Dateien und speichern Sie Sie. Ich weiß, es ist nicht die beste Lösung, aber es bekommt den job getan.
InformationsquelleAutor der Antwort Dushyant Bangal
Soweit meine Beobachtung betrifft, in Visual Studio 2015, XAML Eigenschaften bereits gesetzt sind, wie vorgeschlagen, durch hoch-zum Antworten hier vom Standard, insbesondere :
MSBuild:UpdateDesignTimeXaml
Embedded Resource
aber der Fehler immer noch angezeigt wird, manchmal... (wie in diese andere Frage).
Bearbeitung der entsprechenden XAML-Datei und drücken Sie STRG+S sollte funktionieren, aber Sie müssen nicht. Ein sauberer Weg zu zwingen, Benutzerdefinierte Tools ausgeführt werden, indem Sie mit der rechten Maustaste auf die XAML-Datei, und klicken Sie dann auf "Benutzerdefiniertes Tool Ausführen" Kontext-Menü.
InformationsquelleAutor der Antwort har07
Bekomme ich diese manchmal, und hier ist die Checkliste, die gelöst so weit:
Stellen Sie sicher, dass der namespace in .xaml und .xaml.cs match
Erben von den richtigen Eltern - ContentPage für eine Seite und ContentView für eine Kontrolle
Set build action von den .xaml-Datei zu
Embedded Resource
wenn in das gemeinsame Projekt.InformationsquelleAutor der Antwort root
Traf ich dieses problem. Es ist im Zusammenhang mit der Codierung von XAML-Dateien in VS. Ich bin mit VS2015.
Löste ich dieses problem wie folgt:
Öffnen Sie die *.xaml-Datei in das Projekt, und klicken Sie auf die Schaltfläche Speichern. (Es wird die Anwendung der richtigen Codierung in VS2015).
Dann öffnen Sie das Projekt und erstellen Sie ihn neu. Jetzt gibt es keine Fehler.
InformationsquelleAutor der Antwort Roman Himadinov
Aktualisierung der Xamarin.Formen NuGet-Paket sollte den job tun,
InformationsquelleAutor der Antwort Thomas Weller
Versuchen Sie, ein x:Name="..." auf der xaml Seite... sonst Nichts für mich gearbeitet, aber nach dem hinzufügen des x:Name-Attribut auf einige der Elemente auf der Seite der Fehler verschwunden (die meisten der Zeit - ich bekomme immer noch manchmal). Ich benutze die neueste build (1.5.0.6447) von Xamarin.Formen...
XAML arbeiten nicht auf gemeinsame Projekte - es funktioniert nur im portable-Projekte...
InformationsquelleAutor der Antwort Kim Rasmussen
Sieht es aus wie die (re -) generation des
blah.xaml.g.cs
Dateien ist eigentlich das problem. Ich bekomme eine MENGE in gemeinsamen Projekten (weshalb ich Sie nicht verwenden, es sei denn, ich habe keine andere Wahl). Es passiert viel mehr in Xamarin Studio als Visual Studio, für mich, aus irgendeinem Grund. Ich versuche, nicht zu verwenden, XS überhaupt.Oft entladen einer der anderen Plattformen (z.B. wenn Sie die Gebäude droid, entladen, ios) und dabei eine saubere und Neuerstellung beheben.
Können Sie auch versuchen, etwas zu tun wie das öffnen einer der Nachteile
.xaml
Dateien und das ändern von einigen der xaml-markup (z.B. hinzufügen oder ändern einesx:Name
auf eines der Steuerelemente oder Ansichten). Dies führt dazu, dass eine regeneration der xaml-Code.g.cs-Datei, und (für mich zumindest) in der Regel löst das problem.Diese sollte wirklich nicht sein, eine Sache, tho.
InformationsquelleAutor der Antwort wislon
Dies ist wahrscheinlich nicht dein Fall, aber ich hatte ähnliches problem und bei mir xaml und code-behind-Namen missmatching. zum Beispiel nach Ihrem Muster,
wenn der code hinter der namespace ist XamaTest(name der app in den meisten Fällen) und der Klasse aufgerufen wird MyXamlPage, der xaml-Klasse name muss XamaTest.MyXamlPage ([namespace].[classname])
Ich war dumm, nachdem eine leere xaml code-behind -, änderte ich den Namen der Klasse in xaml und ich wurde immer diese Fehlermeldung.
Code-behind:
InformationsquelleAutor der Antwort batmaci
Stieß ich auf diese Fehlermeldung, wenn;
ContentPage-cs+xaml
und dieApp-cs+xaml
aus dem Projekt, ohne Sie tatsächlich zu löschen.Dies wurde behoben durch;
.xaml
- Datei der Klasse, in dem das Problem vorhanden ist.properties
.Build action
wählen Sie "Eingebettete Ressource"Custom Tool
Typ "MSBuild:UpdateDesignTimeXaml"InformationsquelleAutor der Antwort 7vikram7
Wenn Sie die intellisense-Fehler, wie InitializeComponent in Ihrem Xamarin.Forms-Seiten, aber das Projekt tatsächlich baut und läuft einwandfrei, nur fügen Sie ein neuen Forms-Seite verwenden Sie den Assistenten, um alle Fehler beheben...
Dann können Sie Sie löschen, die neue Seite.
InformationsquelleAutor der Antwort Guillaume Perrot
Visual Studio 2013
update 4 Umwelt, und ich habe versucht alle Empfehlungen, was ich auf dem web gefunden werden. Nichts mein problem gelöst.Visual Studio 2015
- Vorschau und erstellen neue leere app mit xamarin forms-Projekt.Xaml
Datei war alles OK und das Problem mitInitialComponent
Methode verschwunden.InformationsquelleAutor der Antwort Tomas Repka
Sauber und neu erstellen hat den trick für mich!
InformationsquelleAutor der Antwort machie27
Rechts Klick *.xaml, und klicken Sie auf Eigenschaften,und ändern Sie "Benutzerdefiniertes Tool" den Wert "MSBuild:UpdateDesignTimeXaml", " nächste änderung "Build Action" Eigenschaften "Eingebettete Ressource",
build-Projekt arbeitet.
InformationsquelleAutor der Antwort Ali Yousefie
Sehr einfache Lösung, die für mich gearbeitet:
Nun die InitializeComponent () - Funktion wird angezeigt, ohne rot zu unterstreichen.
Hoffe, das jemand hilft.
InformationsquelleAutor der Antwort Samir Tamri
Check Seite text
x:Class="AppName.Page1"
. AppName muss der app-nameInformationsquelleAutor der Antwort developer d
Dieses problem tritt auf, wenn die Projekte, die der Lösung sind, verweisen auf die version 1.4.0.0 der dlls "Xamarin.Formen.Core", "Xamarin.Formen.Xaml" und "Xamarin.Formen.Plattform" - version 1.0.0.0.
Es zu lösen hatte, habe ich ein downgrade auf version 1.3.3.0 der dlls, aber mit dieser version Xamarin.Formen.Plattform 1.0.0.0 nicht existiert.
InformationsquelleAutor der Antwort Pulcker
Überprüfen Sie die version von Xamarin.Formen-Paket in Ihrem Projekt referenziert.
InformationsquelleAutor der Antwort user1412699
Ich habe das gleiche Problem jetzt und dann, und das ist, was ich Tue, um es zu beheben: Wenn in der PCL-Projekt, füge ich eine neue cross-Plattform-XAML-Seite zu dem Projekt. Hinzufügen eines neuen XAML-Seite dauert ein paar Sekunden für die Verweise auf den "Haken". Nach den neuen XAML-Seite erfolgreich Hinzugefügt wurde, um das Projekt, die roten Linien auf dem XAML-Seiten (mit Fragen) werden gelöscht. Sobald das problem gelöst ist, ich Sie einfach löschen Sie die XAML-Datei, die ich gerade Hinzugefügt. - Also, zusammengefasst, eine neue XAML-Seite dann zu löschen, wurde die Lösung das Problem für mich.
InformationsquelleAutor der Antwort zinczinc
Ich Nur aktualisiert Alle Paketefunktioniert gut.
InformationsquelleAutor der Antwort Arun Prasad E S
InformationsquelleAutor der Antwort Hamza
In meinem Fall das problem war das Projekt Weg.
Die erzeugte code-Datei erhält einen Namen inklusive absoluten Pfad kodiert, damit es ein Gültiger Dateiname.
Der Weg war "D:\Projekt C#\ProjectRootFolder\Projekt".
Die Dateinamen erzeugt, indem der build-tool wurde " - Projekt.Droid.D_.Projekt_C_. Namespace etc."
Verschieben Sie das Projekt auf einem Weg, wie "D:\project\ProjectRootFolder" half in meinem Fall.
InformationsquelleAutor der Antwort Denis Reichelt
Ich bin mit Visual Studio 2015, ich hab das gleiche problem, und fand keine Antworten auf dem Netz war eine vollständige Lösung.
Hier werde ich erklären, was für mich gearbeitet.
Mein primäres Ziel war hierbei die Beseitigung der roten Fehlermeldung, die immer wieder
Grundsätzlich habe ich erstellt eine Funktion namens
InitializeComponent2()
, tut genau das gleiche wieInitializeComponent()
und verwendet, stattdessen habe ich wortwörtlich kopiert den code fürInitializeComponent()
.Macht den job.
Sieht es so aus (und ich werde erklären):
Setzen Sie die Funktion in die definition der einzelnen Seiten (
.cs
Dateien) z.B.Auch Sie müssen
using Xamarin.Forms.Xaml;
an der Spitze jeder.cs
Seitewo
LoadFromXaml(..)
verwendet wird.Dann natürlich ändern
InitializeComponent()
zuInitializeComponent2()
zum Aufruf der neuen Funktion.d.h. Sie haben die Funktion, die in den gleichen Kontext wie die Seite, wodurch der Fehler Weg. Ich kann mir nicht vorstellen das real
InitializeComponent
Funktion erhalten Sie etwas Hinzugefügt, um es, wie Sie Ihr Projekt ändern, aber das ist eine Möglichkeit.Es war gut für mich, so weit.
Ich habe versucht, viele Dinge, ändern Sie die Build Action -, XAML-namespace, Neustart von vs, Reinigung+Wiederaufbaus, der Suche nach NuGet-Paket-updates.
Grundsätzlich, Visual Studio kompiliert und lief das Programm problemlos auf meinem android-Gerät + emulator, aber, dass die Fehlermeldung nicht Weg.
Meine Lösung ist für Android, aber es kann auch für iOS etc.
Ich ging zurück zu den Wurzel des Problems
InitializeComponent()
ist Der aktuelle code für diese Funktion generiert eine Datei namens<Your Project Name>.Page1.xaml.g.cs
oderPage2.xaml.g.cs
zum Beispiel. Jedoch, Sie (die Datei) istnur dann generiert, wenn ein bestimmtes Ereignis gefeuert wird. Ich hatte das Glück zu entdecken
es durch Eingabe von text in die "Custom Tool Namespace", dem das Ereignis ausgelöst, für eine der xaml-Seiten(eine Datei mit der Endung in
.xaml
, nicht.cs
- stellen Sie sicher, Sie haben.xaml
- Datei ausgewählt ist), geben Sie etwas text und drücken Sie die EINGABETASTE und die Datei wird erstellt.Dann hatte ich die tolle Idee, dass
InitializeComponent2()
einer Funktion, die genau das gleiche wieInitializeComponent()
und setzen es in jedem cs-Datei, damit es existiertohne zu generieren, die
.xaml.g.cs
jedes mal, wenn Sie wollen, dass die Fehler aufgeh Weg.
InformationsquelleAutor der Antwort Dougie
Ich weiß nicht, ob dies gelöst ist, aber für mich, das einzige, was ich zu tun hatte, ist entfernen Sie die erste Zeile der XAML ("xml version="1.0" encoding="utf-8")
Manchmal source version control, versucht zu identifizieren, die Art der Datei und fügen Sie diese Art von Sachen.
InformationsquelleAutor der Antwort Miguel Laborde
hinzufügen
using Xamarin.Forms.Xaml
getestet auf Visual Studio 2017
InformationsquelleAutor der Antwort TheFranzMaster
App.xaml
undMainPage.xaml
- Datei der Klasse, in dem das Problem vorhanden ist.MSBuild:UpdateDesignTimeXaml
"InformationsquelleAutor der Antwort Endrit
Ultimative Lösung wäre, Bearbeiten Sie die project-Datei in einem text-editor und kopieren Sie einfach die Muster von anderen nicht in Konflikt stehende Datei. Diese Lösung funktionierte für mich. In der Regel, Sie Aussehen würde, für diese syntax:
InformationsquelleAutor der Antwort mr5
In der Xaml-Seite nur Eigenschaften festlegen
Build Action = Embedded resource
Es funktioniert in visual studio 2017.
InformationsquelleAutor der Antwort saleem kalro
Versucht, alle der oben genannten und kein Glück, was hat Arbeit für mich war, Kraft der Neuinstallation des Xamarin.Formen Pakete. In der Paket-manager-Konsole Eingabeaufforderung;
update-Paket xamarin.Formen -neu installieren
Ist es nicht update-Pakete nur entfernt und neu Hinzugefügt
InformationsquelleAutor der Antwort
Hatte ich ein Problem mit dem Zwischenspeichern, wenn ich auf diese Fehler.
Um dieses Problem, einfach deinstallieren Letzte version von Xamarin.Formen-Paket und neu installieren eine Vorherige funktionierende version.
Wenn die Wiederherstellung erfolgreich ist, dann update das Paket wieder auf die neueste version.
InformationsquelleAutor der Antwort Ali Yousefie