代码:
public partial class MyControl : UserControl
{
int size = 8;
public int Size
{
get { return size; }
set { size = value; Initialize(); }
}
public MyControl()
{
InitializeComponent();
Initialize();
}
void Initialize()
{
// ...
}
}
XAML:
<local:MyControl"/>
或:
<local:MyControl Size="10"/>
在XAML中设置Size
属性时,会调用Initialize
两次。如果我从Initialize
移除InitializeComponent
来电,Initialize
将从Size
setter调用Size
。但在这种情况下,如果未在XAML中设置Initialize
,则根本不会调用{{1}}。
在从XAML设置所有控件属性(如果有)之后,有没有办法编写初始化函数,执行一次?
答案 0 :(得分:4)
您可以在Initialize
事件处理程序中调用Loaded
方法:
public partial class MyControl : UserControl
{
int size = 8;
public int Size
{
get { return size; }
set { size = value; }
}
public MyControl()
{
InitializeComponent();
Loaded += (o, e) => Initialize();
}
void Initialize()
{
// ...
}
}