我正在学习他的 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中?
这是IControlerInterface
andControlerCalculator
类。
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