我的TimeEntry窗口中有3个字段:
所有控件都绑定到一个对象。
我在模型类中实现了System.ComponentModel.INotifyPropertyChanged, 我已经更新了标签中的内容,包括开始或结束时间的变化,但是..
我必须观察阻止修改的更改,这将导致长度低于0。
我该怎么做?
答案 0 :(得分: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; }
}
...
}