0

私はMVCパターンを学んでおり、ビューまたはウィンドウが1つあるWPFおよびWinFormsのいくつかの単純なデモアプリに適用しました。

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

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

多くの人が MVVM を使用すべきだと提案していることは知っていますが、私はそうしますが、MVC でこれを行う方法に興味があります。

私の質問は、複数のビューを管理する方法です (例:多くのメニュー項目を持つメニュー)。すべてのメニュー項目は、独自のボタン テキスト ボックスなどを備えた Window であり、独自のControllerが必要です。

それとも、すべてを 1 つの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);
    }
}

ビューはそれを使用してコントローラーを呼び出すため、インターフェイスを変更する必要があるため、すべてを1つのコントローラーに配置することは解決策ではないと思います。

私のメインの ViewMenuItemからのクリックを管理する方法はありますか?MainWindow

4

0 に答える 0