2011-02-15 157 views
4

由於某種原因,此事件觸發兩次。舉例來說,按鈕點擊的其他事件只會觸發一次,但日期選擇器上的日期會因爲連續兩次觸發事件而發生變化。WPF用戶控件事件觸發兩次

任何想法?

代碼

public event EventHandler<CalendarEventArgs> DateTimeStartChanged; 
private void dateTimeStart_SelectedDateChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (!_loading) 
    { 
     e.Handled = true; 

     if (DateTimeStartChanged != null) 
      if (dateTimeStart.SelectedDate != null && dateTimeEnd.SelectedDate != null) 
      { 
       StartDate = (DateTime) dateTimeStart.SelectedDate; 
       DateTimeStartChanged(this, 
             new CalendarEventArgs((DateTime) dateTimeStart.SelectedDate, 
                   (DateTime) dateTimeEnd.SelectedDate)); 
      } 



    } 
} 
+0

嘗試在「if(!_loading)」之前嘗試使用「e.Handled = true」 – Artru 2011-08-24 15:02:14

回答

0

這與DatePicker控件中的錯誤,而不是你的問題。不幸的是,除了應用一種變通方法,比如設置一個標誌,所以它只能在第一次執行時,你就無能爲力了。

1

多麼令人沮喪的問題。我對這個問題的解決方法如下。到目前爲止工作。希望這可以幫助某人。

private DateTime? currentDateTime = null; 

private void dpDate_SelectedDateChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if(currentDateTime != dpDate.SelectedDate) 
     SaveData(); 
    currentDateTime = dpDate.SelectedDate; 
}