调用委托时NotImplementedException

时间:2012-08-09 20:15:47

标签: c# winforms delegates

我正在实现一个事件结构,以将信息从View传递给Presenter。在视图中,单击按钮时会调用以下代码:

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

public event EventHandler AlterCompound1_Action;

出于某种原因,NotImplementedException总是出现在:

AlertEvent(this, EventArgs.Empty);

有人可以帮我找出原因吗?

Presenter类的代码:

    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.
    }

2 个答案:

答案 0 :(得分:5)

90%的确定,如果你看起来你会发现这一点。

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

答案 1 :(得分:1)

感谢Will,我意识到我犯的错误。我一直在使用“构建解决方案”工具,但我忽略了查看Visual Studio 2010的构建配置管理器(构建 - >配置管理器)。在那里,我发现了这个:

Screenshot of configuration manager in VS2010

之前,其中一些Build列检查标记(对应于我正在编辑的项目,例如QAz.Presenter和QAz.View)未被选中,因此“Build Solution”正在跳过它们。选择这些项目后,Visual Studio知道在运行解决方案时构建它们。