2012-08-09 3 views
3

Je suis en train de mettre en œuvre une structure d'événement pour transmettre des informations d'une vue à un présentateur. De l'avis, le code suivant est appelé quand un bouton est cliqué:NotImplementedException lors de l'appel du délégué

private void alterCmpd1() 
{ 
    EventHandler AlterEvent = AlterCompound1_Action; 
    if (AlterEvent != null) AlterEvent(this, EventArgs.Empty); 
} 

public event EventHandler AlterCompound1_Action; 

Pour une raison quelconque, un NotImplementedException apparaît toujours:

AlertEvent(this, EventArgs.Empty); 

Quelqu'un pourrait-il me aider à comprendre pourquoi?

code de la classe Présentateur:

public MainPresenter(IMainView view, IModel model) 
    { 
     this.view = view; 
     this.view.AlterCompound1_Action += new EventHandler(view_AlterCompound1); 
     this.model = model; 
     view.Show(); 
    } 

    void view_AlterCompound1(object sender, EventArgs e) 
    { 
     // I commented out this code, on the off 
     // chance that it was affecting things. Still no luck. 
    } 

Répondre

1

Grâce à Will, j'ai réalisé l'erreur que je faisais. J'avais utilisé l'outil "Build Solution", mais j'ai négligé de regarder dans le gestionnaire de configuration de Build pour Visual Studio 2010 (Build -> Configuration Manager). Là, je trouve ceci:

Screenshot of configuration manager in VS2010

Avant, certaines de ces coches de colonne de construction (correspondant aux projets que je faisais le montage, comme QAz.Presenter et QAz.View) ne sont pas sélectionnés, donc " Build Solution "les sautait dessus. Après que ces projets ont été sélectionnés, Visual Studio a su les construire lorsque j'ai exécuté la solution.

5

90% sûr si vous regardez, vous trouverez cela.

private void AlterCompound1_Action(object, EventArgs e) 
{ 
    throw new NotImplementedException(); 
} 
+0

Malheureusement, non. Cela m'aurait rendu la vie plus facile. –

+0

@QtotheC: Je parie que si vous avez supprimé la classe MainPresenter, recompilé et exécuté l'exception se produirait de toute façon. Essayez-le. – Will

+0

Oui, vous avez raison. Je pensais qu'il se plaindrait de manquer un cours ailleurs. Qu'est-ce qui le cause? Cela a-t-il quelque chose à voir avec le partage de mes fichiers de code entre différentes classes? Je travaille dans VS 2010 et je le dis à Rebuild Solution. –

Questions connexes