window-manager-using-mvvm-patte

Windows Manager using MVVM Pattern

WindowManager class. Its purpose is to keep track of current open windows, and allow certain operations on them (like checking if any window is open at a time, so that you can prevent other windows from being created)

class WindowManager : IWindowManager
{
    private List<Window> _windows;

    public WindowManager()
    {
        _windows = new List<Window>();
    }

    public void addWindow(Window window)
    {
        if (!_windows.Contains(window)) { _windows.Add(window); }
    }

    public void removeWindow(Window window)
    {
        if (_windows.Contains(window) == true) { _windows.Remove(window); }
    }

    public bool isAnyWindowOpen()
    {
        if (_windows.Count == 0) { return true; }
        else { return false; }
    }
}

You instantiate my  WindowManager in your MainWindow (Main, startup/default View) code-behind:

public MainWindow() { InitializeComponent(); 
var windowManager = new WindowManager(); 
MenuItemsStackPanel.DataContext = new SideMenuViewModel( windowManager); 
}

Conclusion

This post described Window Manager in MVVM pattern and its functionality.

 

This post is part of “WPF step by step”

Back to home page