// Token: 0x060076D7 RID: 30423 RVA: 0x0021F690 File Offset: 0x0021D890 protected override bool Purge(object source, object data, bool purgeAll) { StaticPropertyChangedEventManager.TypeRecord typeRecord = (StaticPropertyChangedEventManager.TypeRecord)data; bool result = typeRecord.Purge(purgeAll); if (!purgeAll && typeRecord.IsEmpty) { base.Remove(typeRecord.Type); } return(result); }
// Token: 0x060076D9 RID: 30425 RVA: 0x0021F6FC File Offset: 0x0021D8FC private void PrivateAddHandler(Type type, EventHandler <PropertyChangedEventArgs> handler, string propertyName) { using (base.WriteLock) { StaticPropertyChangedEventManager.TypeRecord typeRecord = (StaticPropertyChangedEventManager.TypeRecord) base[type]; if (typeRecord == null) { typeRecord = new StaticPropertyChangedEventManager.TypeRecord(type, this); base[type] = typeRecord; typeRecord.StartListening(); } typeRecord.AddHandler(handler, propertyName); } }
// Token: 0x060076DA RID: 30426 RVA: 0x0021F75C File Offset: 0x0021D95C private void PrivateRemoveHandler(Type type, EventHandler <PropertyChangedEventArgs> handler, string propertyName) { using (base.WriteLock) { StaticPropertyChangedEventManager.TypeRecord typeRecord = (StaticPropertyChangedEventManager.TypeRecord) base[type]; if (typeRecord != null) { typeRecord.RemoveHandler(handler, propertyName); if (typeRecord.IsEmpty) { typeRecord.StopListening(); base.Remove(typeRecord.Type); } } } }
// Token: 0x060076DB RID: 30427 RVA: 0x0021F7C0 File Offset: 0x0021D9C0 private void OnStaticPropertyChanged(StaticPropertyChangedEventManager.TypeRecord typeRecord, PropertyChangedEventArgs args) { WeakEventManager.ListenerList listenerList; using (base.ReadLock) { listenerList = typeRecord.GetListenerList(args.PropertyName); listenerList.BeginUse(); } try { base.DeliverEventToList(null, args, listenerList); } finally { listenerList.EndUse(); } if (listenerList == typeRecord.ProposedAllListenersList) { using (base.WriteLock) { typeRecord.StoreAllListenersList((WeakEventManager.ListenerList <PropertyChangedEventArgs>)listenerList); } } }
// Token: 0x06008DEC RID: 36332 RVA: 0x0025AAB7 File Offset: 0x00258CB7 public PropertyRecord(string propertyName, StaticPropertyChangedEventManager.TypeRecord owner, WeakEventManager.ListenerList <PropertyChangedEventArgs> list) { this._propertyName = propertyName; this._typeRecord = owner; this._list = list; }
// Token: 0x06008DEB RID: 36331 RVA: 0x0025AAA8 File Offset: 0x00258CA8 public PropertyRecord(string propertyName, StaticPropertyChangedEventManager.TypeRecord owner) : this(propertyName, owner, new WeakEventManager.ListenerList <PropertyChangedEventArgs>()) { }