我的 TimeEntry 窗口中有 3 个字段:
- 开始时间
- 时间结束
- 长度(双小时)
所有控件都绑定到一个对象。
我已经在模型类中实现了 System.ComponentModel.INotifyPropertyChanged,并且我已经在开始或结束时间更改了标签中的内容,但是..
我必须观察块修改的变化,这将创建低于 0 的长度。
我该怎么做?
我的 TimeEntry 窗口中有 3 个字段:
所有控件都绑定到一个对象。
我已经在模型类中实现了 System.ComponentModel.INotifyPropertyChanged,并且我已经在开始或结束时间更改了标签中的内容,但是..
我必须观察块修改的变化,这将创建低于 0 的长度。
我该怎么做?
您可以在模型类中实现此逻辑
public class MyModel : INotifyPropertyChanged
{
...
public DateTime StartTime
{
get { return _startTime; }
set
{
if ((EndTime - value).TotalMinutes >= 0) // only allow changes if it doesn't result in < 0 timespan.
{
_startTime = value;
OnPropertyChanged("StartTime", "Length");
}
}
}
public DateTime EndTime
{
get { return _endTime; }
set
{
if ((value - StartTime).TotalMinutes >= 0)
{
_endTime = value;
OnPropertyChanged("EndTime", "Length");
}
}
}
public double Length
{
get { return (EndTime - StartTime).TotalMinutes / 60.0; }
}
...
}