In the following example, you will have a controller for each window or group of windows. The controllers will be transferred to each other depending on how they need to cooperate (what knowledge they need to share, etc.). It is important to keep your application in controllers and restrict windows to handling input and user events.
// pseudocode, because I do not know WinForms that much class MainController { private Guid securityToken; public Guid SecurityToken { get { return securityToken; } set { securityToken = value; } } } class LoginWindowController { MainController mainController; LoginWindow loginWindow; public LoginWindowController(MainController mainController) { this.loginWindow = new LoginWindow(this); this.mainController = mainController; } public void Show() { loginWindow.IsVisible = true; } public void HandleLogin() { Guid token = myobject.Authenticate(loginWindow.Username, loginWindow.Password); if (token != Guid.Empty) { mainController.SecurityToken = token; } } }
user1342582
source share