App OnStartup wird nie aufgerufen

7

Sehr einfaches Problem, aber ich mache keine Fortschritte, also dachte ich, ich sollte fragen ...

Ich schreibe einen kleinen WPF-Prototyp, wo ich den Boot platzierte up logics, wo ich glaube, dass es gehört: In (der überschriebenen) App.OnStartup Methode.

Das Problem ist, die Methode wird nie aufgerufen und ich habe keine Ahnung warum!

Ich habe etwas durchgeblättert und festgestellt, dass das <Application> -Tag in App.xaml die implementierende Klasse ( App ) im Attribut " x:Class " angibt. Ich änderte es von x:Class="Application" zu x:Class="App" , aber es machte keinen Unterschied.

Was fehlt mir hier?

BEARBEITEN: Hier ist der Code ...

XAML:

%Vor%

Code hinter ...

%Vor%     
Jonas Rembratt 22.06.2011, 15:16
quelle

4 Antworten

18

Bearbeiten: Ihr XAML scheint nicht mit dem dahinter stehenden Code verknüpft zu sein, der x:Class muss den Namespace Ihrer App-Klasse enthalten. z.B. MyWpfApplication.App .

Wenn Sie nicht gerade einen Code posten, bekommen Sie nur einen Tipp, hier ist meins: Sie haben die Methode nicht richtig außer Kraft gesetzt, aber sie mit einer Methode mit demselben Namen und derselben Signatur ausgeblendet.

So sollte eine funktionierende Überschreibung aussehen:

%Vor%

Wie vorgeschlagen, können Sie stattdessen das Startup -Ereignis verwenden , aber Sie müssen nicht, weiter die StartupUri wird zusätzlich zu dem Code in der Überschreibung ausgeführt.

    
H.B. 22.06.2011, 15:46
quelle
2

Als Alternative zu @ Philippe's Antwort können Sie auch den Code-Behind anschließen:

%Vor%     
Brian Driscoll 22.06.2011 15:28
quelle
1

Sie müssen den EventHandler verbinden:

%Vor%     
Philippe Lavoie 22.06.2011 15:24
quelle
0

In meinem Fall habe ich das Projekt und den Namensraum umbenannt. Dann feuern alle Methoden im dahinterliegenden Code nicht mehr.

Der x:Class zeigte immer noch den alten Namespace. Die Klasse App hat gerade einen anderen Namespace verwiesen, der nicht verwendet wurde, und nichts hat sich darüber beschwert.

Also, du machst kurz, du musst das x:Class umbenennen, genauso wie du es für 'normale' Code-Dateien machen würdest.

    
Patrick Hofman 05.05.2014 13:50
quelle

Tags und Links