public void ActivateOrCreate()
        {
            var current = CurrentOrNull;

            if (current == null)
            {
                var view   = GetView();
                var window =
                    new ScheduleListWindow()
                {
                    DataContext = view,
                };
                current       = new State(window, view);
                CurrentOrNull = current;

                window.Closed += (sender, e) =>
                {
                    current.Dispose();
                    CurrentOrNull = null;
                };

                window.Show();
            }
            else
            {
                current.Window.Activate();
            }
        }
 public State(ScheduleListWindow window, ScheduleListView view)
 {
     Window = window;
     View   = view;
 }