简体   繁体   English

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

[英]How to pass a Window as a parameter to another class in WPF C#

Part 01 第01部分

Instead of make an object of window then show it like this: 代替使对象成为窗口,然后将其显示为:

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

I want to pass the window name to a class and that class can do the stuff 我想将窗口名称传递给一个类,该类可以做

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

then I want to use these syntax: 那么我想使用以下语法:

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

How can I do that? 我怎样才能做到这一点? any help would be appreciated 任何帮助,将不胜感激

If I'm interpreting your question correctly then you should be able to use a generic method: 如果我正确解释了您的问题,那么您应该可以使用通用方法:

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

    form.Show();
}

You would then call it like this: 然后,您可以这样称呼它:

LoadWindow<Window1>();

Use Generics, 使用泛型

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM