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”