我有一个WPF应用程序,并且正在使用MVVM框架。
在我的视图模型中,我有一个日期时间设置器,用于检查变量的值是否已更改,如果是,则将新值设置为变量。
我的问题是,每次进入设置器时,日期时间的值是否正确?
例如:日期时间值为2019年1月11日
初始设定值等于2019年1月11日,但在随后的运行中它变为2019年11月1日-在下一次运行中返回2019年1月11日,依此类推。
由于setter函数中的无限循环,因此导致StackMemoryException。
我尝试添加if语句来检查id的旧值和新值是否相同,但是问题是setter的值始终从1月切换到11月。
我尝试将日期解析为相同的日期格式。
public DateTime? ActionDate
{
get { return actionDate; }
set
{
if (value.HasValue && !actionDate.HasValue)
{
actionDate = value;
OnPropertyChanged("ActionDate");
}
else if (value.HasValue && actionDate.HasValue && actionDate.Value.Date.ToString("MM/dd/yyyy") != value.Value.Date.ToString("MM/dd/yyyy"))
{
actionDate = value;
OnPropertyChanged("ActionDate");
}
}
}
我还尝试在使用Windows 7 OS的计算机上运行该应用程序,并且可以正常运行。任何建议都会有所帮助。
谢谢