我正在为我的WPF应用程序创建一个对话框窗口.我知道WPF要求所有控件都有一个默认构造函数,我可以创建所有带有我想要的参数的构造函数.但默认构造函数是否必须公开?我可以将其设为内部,私人,甚至保护?
除非您想要从XAML实例化控件,否则控件在WPF中不需要默认构造函数.
拥有这样的控件是完全合法的:
public partial class MyUserControl : UserControl
{
public MyUserControl(string someParameter) : this()
{
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
如图所示,删除了默认构造函数,但您需要确保InitializeComponent();
调用它.
如果从XAML实例化控件,则嵌入控件必须可以看到默认构造函数
因此,internal
如果嵌入控件在同一个组件中,或者必须是public
其他组件.