错误:在类型上找不到匹配的构造函数

S A*_*rew 5 c# wpf xaml

我有一个WPF应用程序,我使用多个表单.当我们启动被称为的应用程序时,有一个主要形式被打开MainWindow.xaml.然后,此表单具有多个表单,这些表单根据用户选项打开.有表格StartClassWindow.xaml.目前我正在处理此表单,所以我希望它直接启动而不是MainWindow.xaml.所以要做到这一点,我改变了app.xaml startupuri:

<Application x:Class="Class.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         DispatcherUnhandledException="Application_DispatcherUnhandledException"
         StartupUri="StartClassWindow.xaml">
<Application.Resources>

</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)

但后来它开始给出如下错误:

在类型'Class.StartClassWindow'上找不到匹配的构造函数.您可以使用Arguments或FactoryMethod指令来构造此类型.行号"3"和行位置"9".

这是StartClassWindow.xaml.cs:

namespace Class
{
    public partial class StartClassWindow : System.Windows.Window
    {

       public StartClassWindow(string classData)
       {
          InitializeComponent();
          className = classData;
          function();
       }
       //rest of the code.
    }
}
Run Code Online (Sandbox Code Playgroud)

Sal*_*ari 13

您需要为此添加一个无参数构造函数StartClassWindow:

public StartClassWindow(string classData)
{
    InitializeComponent();
    className = classData;
    function();
}

public StartClassWindow()
{

}
Run Code Online (Sandbox Code Playgroud)

或者,如果你不希望有另一个构造函数,你可以覆盖OnStartup的方法App.xaml.cs,但你应该删除StartupUri="StartClassWindow.xaml"你的App.xaml第一个.如下所示:

protected override void OnStartup(StartupEventArgs e)
{
    StartClassWindow st = new StartClassWindow("");
    st.Show();
}
Run Code Online (Sandbox Code Playgroud)