WPF 用户控件事件触发两次

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



    }
}

最佳答案

多么令人沮丧的问题。我对此问题的解决方法如下。到目前为止已经工作了。希望这可以帮助某人。

private DateTime? currentDateTime = null;

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

关于WPF 用户控件事件触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5001220/

相关文章:

WPF GridViewHeader 样式问题

.net - wpf:查找祖先的祖先

c# - 动态处理 UserControl 事件

c# - 无法理解 C# 中的用户控件

.net - 如何在 WPF 中检测鼠标双击左键?

c# - 定时器内的日期比较

c# - Wpf事件不冒泡

c# - 在不修改 TextBox 中的文本的情况下捕获并处理 KeyPress/KeyDown

javascript - JS 调度事件

c# - 通过 MVVM 模式创建 UserControl - DataContext 并绑定(bind)到父级