我有一些代碼具有意外的行爲,具體取決於您如何使用DatePicker控件。如果您通過鼠標選擇日期來使用DatePicker,則該事件將被觸發一次並且代碼正常工作。儘管如果您輸入事件觸發兩次的日期。 這是我的xaml代碼。Datepicker double僅在輸入日期時發生SelectedDateChanged事件
<DatePicker Margin="0,-1,0,0" Height="23" VerticalAlignment="Top" HorizontalAlignment="Right" Width="190" SelectedDate="{Binding DaDate}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedDateChanged">
<i:InvokeCommandAction Command="{Binding SelectedDaDateChangedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DatePicker>
和c#位。
public ICommand SelectedDaDateChangedCommand { get; set; }
private DateTime? daDate;
public DateTime? DaDate
{
get { return daDate; }
set
{
daDate = value;
NotifyOfPropertyChange(() => DaDate);
}
}
public MisoConstraintsViewModel(IView v) : base(v)
{
//This is where DoStuff() gets called twice from the SelectedDateChanged
SelectedDaDateChangedCommand = new RelayCommand(p => DoStuff());
}
任何幫助表示讚賞。謝謝。
當它獲取調用兩次?你確定這不是因爲在輸入時進行了2次更新 - 一次當你改變月份,一次當你改變日期 - 這很常見... – Vivek
開始日期設置爲10/9/2013,然後我點擊進入它並將其更改爲10/8/2013並單擊輸入。每次看起來都會導致雙重加載事件。 – Kohins