2013-02-13 184 views
-1

我有一個顯示有關程序變量信息的窗體。所以我知道我想在任何變量發生變化時更新表單。有什麼辦法可以觸發事件或類似的事情嗎?任何變量發生變化時觸發一個事件

+1

你做了什麼? – exexzian 2013-02-13 14:22:50

+0

我在我的電腦前坐了一個小時想着解決方案。 – 2013-02-13 14:55:40

回答

3

沒有這種能力,除非你自己編寫代碼或使用一些超級高級代碼檢測工具。

我建議你使用屬性而不是字段(除非你實際上是指局部變量?)並實現INotifyPropertyChanged接口。

0

很好的方法有很多,但是我用的是這樣的wheneever事件被觸發它會做類似下面的操作可觀測collectionchanged事件......

static void ObservableEmployees_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) 
     { 
      switch (e.Action) 
      { 
       case NotifyCollectionChangedAction.Add: 
        Console.WriteLine("New item {0} added in the collection",e.NewItems[0].ToString()); 
        break; 
       case NotifyCollectionChangedAction.Remove: 
        Console.WriteLine("Old item {0} removed in the collection", e.OldItems[0].ToString()); 
        break; 
       case NotifyCollectionChangedAction.Move: 
        Console.WriteLine("item {0} is moved", e.NewItems[0].ToString()); 
        break; 
       case NotifyCollectionChangedAction.Replace: 
        Console.WriteLine("item{0} is replacced by item{1}.", e.OldItems[0].ToString(), e.NewItems[0].ToString()); 
        break; 
       case NotifyCollectionChangedAction.Reset: 
        Console.WriteLine("itme{0} is reset.", e.OldItems[0].ToString()); 
        break; 

}

和認購..

observableEmployees = new ObservableCollection<Employee>(); 

      observableEmployees.CollectionChanged += ObservableEmployees_CollectionChanged; 
相關問題