2013-02-13 142 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; 
相关问题