Как да наблюдаваме съдържанието на етикета?

Имам 3 полета в моя прозорец TimeEntry:

  • Начален час
  • Крайно време
  • Продължителност (двойни часове)

Всички контроли имат обвързване към един обект.

Внедрих System.ComponentModel.INotifyPropertyChanged в класа на модела и вече актуализирах съдържанието в етикета с промени в началния или крайния час, но...

Трябва да наблюдавам промените в блоковите модификации, които ще създадат дължина под 0.

Как трябва да направя това?


person Marek Urbanowicz    schedule 10.11.2012    source източник
comment
Само за да съм сигурен. Искате ли да изпълните някакъв метод, когато текстът в етикета се промени?   -  person Daniel Castro    schedule 11.11.2012


Отговори (1)


Можете да приложите тази логика във вашия клас модел

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; }           
    }
  ...
}
person Jeff    schedule 10.11.2012