public void Close(string key, object viewModel) { if (!_viewsByKey.ContainsKey(key)) { throw new ArgumentException($"Key {key} wasn't registered", nameof(key)); } var window = OpenedWindows.Single(w => w.DataContext == viewModel); window.Close(); OpenedWindows.Remove(window); }
public void SwitchToWindow(string windowHandle) { if (IsOpened) { if (!OpenedWindows.Contains(windowHandle)) { throw new ArgumentException($"Can`t find window with handle = {windowHandle}"); } DriverKeeper.GetDriver.SwitchTo().Window(windowHandle); WindowChanged?.Invoke(windowHandle); } }
public void CloseWindow(string windowHandle) { if (!IsOpened) { return; } if (!OpenedWindows.Contains(windowHandle)) { throw new ArgumentException($"Can`t find window with handle = {windowHandle}"); } if (OpenedWindows.Count == 1) { Quit(); return; } string currentHandle = DriverKeeper.GetDriver.CurrentWindowHandle; bool windowChanged = false; if (currentHandle != windowHandle) { DriverKeeper.GetDriver.SwitchTo().Window(windowHandle).Close(); DriverKeeper.GetDriver.SwitchTo().Window(currentHandle); } else { DriverKeeper.GetDriver.Close(); DriverKeeper.GetDriver.SwitchTo().Window(OpenedWindows.Last()); windowChanged = true; } WindowClosed?.Invoke(windowHandle); if (windowChanged) { WindowChanged?.Invoke(OpenedWindows.Last()); } }
public void Show(string key, object viewModel) { if (!_viewsByKey.ContainsKey(key)) { throw new ArgumentException($"Key {key} wasn't registered", nameof(key)); } var view = _viewsByKey[key]; var window = new Window() { Content = view, DataContext = viewModel, Height = 450, Width = 800, WindowStyle = WindowStyle.None, ShowInTaskbar = false, Left = Owner.Left + Owner.Width, Top = Owner.Top }; OpenedWindows.Add(window); window.MouseLeftButtonDown += Drag; window.Show(); }