2012-11-10 72 views
1

我在TimeEntry窗口3個字段:如何觀察標籤內容?

  • 開始時間
  • 結束時間
  • 長度(雙 - 小時)

所有控件都綁定到一個對象。

我在模型類中實現System.ComponentModel.INotifyPropertyChanged, ,我已經更新與在開始或結束時間改變標籤的內容,但..

我要觀察的變化來阻止修改其將創建低於0的長度。

我應該怎麼做?

+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; }   
    } 
    ... 
}