如何将Window作为参数传递给WPF C#中的另一个类

时间:2015-12-04 04:22:06

标签: c# wpf

第01部分

而不是制作一个窗口的对象,然后像这样显示:

  private void prof(object sender, RoutedEventArgs e)
  {
     prof form = new prof();
     form.Show();
  }

  private void multi(object sender, RoutedEventArgs e)
  {
     multi form = new multi();
     form.Show();
  }

  private void userset(object sender, RoutedEventArgs e)
  {
     userset form = new userset();
     form.Show();
  }

  private void sysset(object sender, RoutedEventArgs e)
  {
     sysset form = new sysset();
     form.Show();
  }

我想将窗口名称传递给一个类,该类可以执行这些操作

  public void loadWindow (ref Window x)
  {
     x form = new x();
     form.Show()
  }

然后我想使用这些语法:

 loadWindow(prof);
 loadWindow(multi);
 loadWindow(userset);

我该怎么做? 任何帮助将不胜感激

2 个答案:

答案 0 :(得分:3)

如果我正确解释您的问题,那么您应该能够使用通用方法:

public void LoadWindow<TWindow>() where TWindow : Window, new()
{
    var form = new TWindow();

    form.Show();
}

然后你会这样称呼它:

LoadWindow<Window1>();

答案 1 :(得分:2)

使用泛型,

 private void loadWindow<T>() where T : Window, new()
        {
            T w = new T();
            w.Show();
        }