2012-03-30 35 views
0

在我在XAML中的Silverlight項目中,我創建了一個包含DatePicker控件的窗口。然後,我在窗口SelectedDate的構造函數中設置selecteddatechanged事件併爲其定義回調函數。

爲什麼在構造函數中更改selecteddate之後立即調用此回調函數?
我認爲它只會在用戶更改日期後調用,而不是在構造函數中第一次初始化後立即調用。DatePicker SelectedDateChanged事件

public MyWindow() 
{ 
    InitializeComponent(); 
    this.datePicker.SelectedDate = DateTime.Today; 
    this.datePicker.SelectedDateChanged += new EventHandler<SelectionChangedEventArgs>(datePicker_SelectedDateChanged); 
} 

void datePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) 
{ 
    ... 
} 

回答

0

爲什麼?放入一箇中斷點並檢查發件人對象。這可能會給你一個線索,說明爲什麼有什麼東西觸發了變化事件。對於一個解決方案,如果發送者是足夠獨特的,則代碼可以被寫入以忽略該發送者;從而解決問題。

+0

public MyWindow() { InitializeComponent(); this.datePicker.SelectedDate = new DateTime(1950,1,1); this.datePicker.SelectedDateChanged + = new EventHandler (datePicker_SelectedDateChanged); } 空隙datePicker_SelectedDateChanged(對象發件人,SelectionChangedEventArgs E) { //上斷點發送者是1950年1月1日00:00:00 } – Lukas 2012-04-02 07:04:42

+0

可以日期至1950初始化呼叫之前發生的InitializeComponent()? – OmegaMan 2012-04-02 18:58:36

+0

你的意思是? 'public MyWindow() { this.datePicker.SelectedDate = new DateTime(1950,1,1); InitializeComponent(); this.datePicker.SelectedDateChanged + = new EventHandler (datePicker_SelectedDateChanged); }' 但這會導致空引用異常... – Lukas 2012-04-12 07:14:37