当任何变量发生更改时激发事件

本文关键字:事件 任何 变量 | 更新日期: 2023-09-27 17:58:53

我有一个表格,显示有关程序变量的信息。所以我想在任何变量发生变化时更新表单。有什么方法可以触发一个事件或类似的事情吗?

当任何变量发生更改时激发事件

没有这样的能力,除非您自己编写代码或使用一些超级高级的代码插入工具。

我建议您使用属性而不是字段(除非您实际指的是局部变量?)并实现INotifyPropertyChanged接口。

有很多方法,但我使用的是可观察的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;