0

我正在学习他的 MVC 模式,并将其应用于 WPF 和 WinForms 中的一些简单的演示应用程序中,这些应用程序具有一个视图或窗口。

        App app = new App();
        app.MainWindow = new MainWindow();

        IModelInterface model = new ModelCalculator();
        IControllerInterface controler = new ControllerCalculator(model);
        app.Run();

我知道很多人会建议我应该使用 MVVM,我会的,但我很好奇如何使用 MVC 做到这一点。

我的问题是如何管理多个视图(例如:具有许多菜单的菜单)。每个菜单项都是一个窗口,有自己的按钮文本框等等,它们需要自己的控制器吗?

还是我只是把所有东西都放在一个Controller中?

这是IControlerInterfaceandControlerCalculator类。

public interface IControllerInterface
{

    void Addition();
    void Divide();
    void Multiply();
    void Subtract();
    void Equals();
    void RemoveNull();
    void Clear();

    void OpenChildWindow();
}

class ControllerCalculator : IControllerInterface
{
    IModelInterface model; 

    MainWindow view;

    public ControllerCalculator(IModelInterface model)
    {
        this.model = model;
        view = new MainWindow(this,model);
        view.Show();
    }

    #region ControlerMethodsRegion

    public void Addition() 
    {
        int number = Convert.ToInt32(view.txtDisplyValue.Text);
        model.SetInput(number);
        view.txtDisplyValue.Clear();
        view.txtDisplyValue.Text = "0";
        model.SetState(States.Add);
    }

    public void Subtract()
    {
        int number = Convert.ToInt32(view.txtDisplyValue.Text);
        model.SetInput(number);
        view.txtDisplyValue.Clear();
        view.txtDisplyValue.Text = "0";
        model.SetState(States.Subtract);
    }
}

我认为将所有内容放在一个 Controller 中不是解决方案,因为我需要更改接口,因为 View 使用它来调用 Controller。

那么知道如何从我的主视图管理MenuItem点击吗?MainWindow

4

0 回答 0