Avalonia窗口中构造函数中的参数



让我们取一个简单的窗口:

public partial class NewWindow : Window
{
public NewWindow(CustomType variableName)
{
InitializeComponent();
//do stuff with your variable
#if DEBUG
this.AttachDevTools();
#endif
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}

当您这样做时,应用程序将不再编译:Unable to find public constructor for type Project:Project.Views.NewWindow() Line 1, position 2

有办法绕过它吗?它迫使我使用一些古老的方法,比如通过公共静态变量控制事物,而在正常情况下,使用构造函数可以避免这种情况。

您可能已经发现了这一点,但XAML模板需要一个公共的无参数构造函数。然而,这并不意味着您不能添加自己的第二个构造函数。

public partial class NewWindow : Window
{
public NewWindow()
{
InitializeComponent();
}
public NewWindow(CustomType variableName)
: this()
{
//do stuff with your variable
#if DEBUG
this.AttachDevTools();
#endif
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}

相关内容

最新更新