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% 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.
Als Alternative zu @ Philippe's Antwort können Sie auch den Code-Behind anschließen:
%Vor%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.