1

我的 TimeEntry 窗口中有 3 个字段:

  • 开始时间
  • 时间结束
  • 长度(双小时)

所有控件都绑定到一个对象。

我已经在模型类中实现了 System.ComponentModel.INotifyPropertyChanged,并且我已经在开始或结束时间更改了标签中的内容,但是..

我必须观察块修改的变化,这将创建低于 0 的长度。

我该怎么做?

4

1 回答 1

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; }           
    }
  ...
}
于 2012-11-10T20:53:06.940 回答