WPF用户控制事件发生两次

时间:2011-02-15 08:13:46

标签: wpf events user-controls

出于某种原因,此事件会引发两次。例如,我在按钮点击上发生的其他事件仅触发一次,但是日期选择器上的日期更改是因为有什么原因连续触发两次。

有什么想法吗?

代码

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));
            }



    }
}

2 个答案:

答案 0 :(得分:1)

多么令人沮丧的问题。我对此问题的解决方法如下。到目前为止工作。希望这有助于某人。

private DateTime? currentDateTime = null;

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

答案 1 :(得分:0)

这是DatePicker控件的错误,而不是您的问题。不幸的是,除了应用一个解决方法,例如设置一个标志以便它只在第一次执行时,你无能为力。