【发布时间】:2015-11-11 19:13:40
【问题描述】:
我想通过单击日历控件中的日期来使用 MouseLeftButtonDown 引发事件。但是直到我点击这个组件之外它才会被提升。
这里是 xaml 代码:
<Controls:BasicCalendar Grid.Row="0"
x:Name="DemoCalendar"
DisplayDate="{Binding Path=DisplayDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
HighlightedDateText="{Binding HighlightedDateText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0"
DateHighlightBrush="Gold">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<cal:ActionMessage MethodName="CalendarSelectDateEvent">
<cal:Parameter Value="{Binding ElementName=DemoCalendar, Path=SelectedDate}" />
</cal:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
</Controls:BasicCalendar>
这是我在单击日历中的某个日期后想要提出的事件:
public void CalendarSelectDateEvent(DateTime selectedDate)
{
this.ActualCalendarEvents = this.CalendarEvents.Where(x => x.Date >= selectedDate).ToList();
var a = this.ActualCalendarEvents;
this.ActualCalendarEvents = null;
NotifyOfPropertyChange(() => ActualCalendarEvents);
this.ActualCalendarEvents = a;
NotifyOfPropertyChange(() => ActualCalendarEvents);
}
当我尝试使用 Click 事件而不是 MouseLeftButtonDown 时,日历控件会自动处理它而不触发 CalendarSelectDateEvent。有没有办法同时触发这两个事件? (对于日历控件选择和突出显示 dat 和对于我 CalendarSelectDateEvent)
【问题讨论】:
-
你试过
PreviewMouseLeftButtonDown事件吗? -
是的,我做了,但我需要 SelectedDate 的值,它明确地执行日历控件。因此,当我使用 PreviewMouseLeftButtonDown 时,我在 SelectedDate 中没有正确的值