关闭表单视图

时间:2014-05-13 09:42:35

标签: c# wpf

早些时候(有一些非常感谢的帮助),我看到了如何创建一个允许我打开窗口的功能(见下文)

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));

再次感谢。

1 个答案:

答案 0 :(得分:3)

修改

Gist with example


使用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();
            }
        }