DatePicker コントロールの使用方法によっては、予期しない動作をするコードがいくつかあります。マウスで日付を選択して DatePicker を使用すると、イベントが 1 回発生し、コードは正しく動作します。ただし、日付を入力すると、イベントが 2 回トリガーされます。これが私のxamlコードです。
<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());
}
どんな助けでも大歓迎です。ありがとう。