关闭表单视图

本文关键字:视图 表单 | 更新日期: 2023-09-27 18:02:58

前面(在一些非常感谢的帮助下),向我展示了如何创建一个允许我打开窗口的函数(见下文)

private void icon_Add(object sender, RoutedEventArgs e)
{
    OpenView(typeof(viewName));
}
private void OpenView(Type newView)
{
    if(typeof(Window).IsAssignableFrom(newView)) {
        Window window = (Window)Activator.CreateInstance(newView);
        window.Show();
    }
}

我现在想修改OpenView,这样我也可以告诉它关闭一个窗体(和可以真正做一些帮助。理想情况下,我希望能够运行:

 OpenView(typeof(viewName), typeof(viewToClose));

再次感谢。

关闭表单视图

Edit:

要点与示例


使用Application.Current.Windows作为它存储所有的应用程序的窗口

  private void OpenView(Type newView, Type closeType)
        {
            foreach (Window item in Application.Current.Windows)
            {
                if (item.GetType() == closeType)
                {
                    item.Close();
                }
            }
            if (typeof(Window).IsAssignableFrom(newView))
            {
                Window window = (Window)Activator.CreateInstance(newView);
                window.Show();
            }
        }