窗口的默认构造函数是否必须公开?

Ton*_*ile 3 c# wpf

我正在为我的WPF应用程序创建一个对话框窗口.我知道WPF要求所有控件都有一个默认构造函数,我可以创建所有带有我想要的参数的构造函数.但默认构造函数是否必须公开?我可以将其设为内部,私人,甚至保护?

thu*_*eys 6

除非您想要从XAML实例化控件,否则控件在WPF中不需要默认构造函数.

拥有这样的控件是完全合法的:

public partial class MyUserControl : UserControl
{
      public MyUserControl(string someParameter) : this()
      { 
         InitializeComponent();
      }
}
Run Code Online (Sandbox Code Playgroud)

如图所示,删除了默认构造函数,但您需要确保InitializeComponent();调用它.

如果从XAML实例化控件,则嵌入控件必须可以看到默认构造函数

因此,internal如果嵌入控件在同一个组件中,或者必须是public其他组件.