我会尽力解释我的问题:
首先我想要一个只显示月份的日历,我做到了
<Calendar x:Name="_Calendar" DisplayMode="Year" DisplayModeChanged="_Calendar_DisplayModeChanged" DisplayDateChanged="_Calendar_DisplayDateChanged"/>
然后当 DisplayModeChanged 触发时,我简单地这样做:
private void _Calendar_DisplayModeChanged(Object InSender, CalendarModeChangedEventArgs InE)
{
if (_Calendar.DisplayMode != CalendarMode.Year)
{
_Calendar.DisplayMode = CalendarMode.Year;
}
}
一切都很好,直到我想在用户更改所选月份时刷新网格上的数据,例如:
private void _Calendar_DisplayDateChanged(Object InSender, CalendarDateChangedEventArgs InE)
{
_RefreshGrid();
}
第一次(我的意思是在用户与日历交互之前),网格刷新正常,如果用户将鼠标悬停在其他月份上,则没有任何反应(我想要这个)。但是在用户单击另一个月份后,网格再次刷新确定,但是当用户将鼠标悬停在其他月份时,网格再次刷新,我希望网格仅在用户单击其他月份时刷新。
因此,当用户悬停时会触发 DisplayDateChanged ...
这很奇怪,因为如果我在 _RefreshGrid() 中放置一个消息框,则悬停不会触发 DisplayDateChanged。
希望你能理解,如果不是我可以尝试更好地解释。
谢谢!!
编辑:我认为问题出在焦点上,消息框不会发生错误,因为消息框获得焦点,当我单击任何日期时,如果我将鼠标悬停在其他日期上,则触发 DisplayDateChanged,但是如果我首先单击另一个地方不要有这个问题。