2
代碼只有一次後用戶控件初始化:如何使屬性設置
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"/>
當Size
屬性在XAML中設置,Initialize
被稱爲兩次。如果我從InitializeComponent
中刪除Initialize
呼叫,Initialize
從Size
二傳手調用一次。但在這種情況下,如果在XAML中未設置Size
,則根本不調用Initialize
。
從XAML設置所有控件屬性(如果有)之後,是否有任何方法可以編寫初始化函數?
雖然你可以使用'Loaded'事件,它仍然可以得到多次調用(事件本身,因而你的函數)。如果你只想讓你的函數運行一次,也許有一個bool類成員來檢測函數是否已經被調用,並且忽略了這個函數的未來調用?像這樣:[This](http://stackoverflow.com/a/3303050/1834662) – Viv