于是,我采用了下面的方法,来传递对象给命令函数。
<i:InvokeCommandAction Command="{Binding dpkDateStartSelectedDateChangedCommand}" CommandParameter="{Binding ElementName=dpkDateStart}"/>
命令函数:
/// <summary>
/// 开始日期选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DpkDateStart_SelectedDateChanged(object obj)
{
//dtStart = (DateTime)obj;
DatePicker a = obj as DatePicker;
if (dtStart.ToString() != null && dtStart.ToString() != "")
{
try
{
dtEnd = DateTime.Parse(dtStart.ToString());
if (dtStart > dtEnd)
{
EMessageBox.Show("导出起始日期不能晚于终止日期!", "", EMessageBoxButton.OK, EMessageBoxImage.Warning);
dtStart = null;
}
}
catch (Exception ex)
{
EMessageBox.Show("日期格式错误!", "", EMessageBoxButton.OK, EMessageBoxImage.Error);
//m_cGlobalData.m_cLogs.WriteFaultLog("ExInPortDlg::DpkDateStart_SelectedDateChanged-- 日期格式错误!" + ex.Message);
}
}
}
网页,别业也遇到了我相同的问题:
https://stackoverflow.com/questions/4542291/datepicker-selecteddate-not-changing-when-text-is-input