簡體   English   中英

變量發生變化時觸發事件

[英]Fire an event when any variable has changed

我有一個顯示有關程序變量信息的表格。 所以知道我想在任何變量更改時更新表單。 有什么辦法可以觸發事件或類似的東西嗎?

除非您自己進行編碼或使用一些超高級代碼檢測工具,否則就沒有這種能力。

我建議您使用屬性而不是字段(除非您實際上是指局部變量?)並實現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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM