1

TimeEntryウィンドウに3つのフィールドがあります。

  • 始まる時間
  • 終了時間
  • 長さ(2倍-時間)

すべてのコントロールには、1つのオブジェクトへのバインドがあります。

モデルクラスに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 に答える