private void OnPropertyChanged(object sender, PropertyChangedEventArgs args) { ObservedNode node = null; if (this.nodes.TryGetValue(args.PropertyName, out node)) { this.whenChanged(); if (node.IsObservable) { node.ResetWeakHandler(sender); } } }
public ObservedNode GetOrSet(MemberInfo member, string name = null) { Check.NotNull(member, nameof(member)); if (this.IsObservable) { string memberName = name ?? member.Name; ObservedNode property; if (!this.nodes.TryGetValue(memberName, out property)) { property = new ObservedNode(memberName, CanBeObserved(member)); this.nodes[memberName] = property; } return(property); } else { return(this); } }
public ObservedNodeBuilder() { this.Root = ObservedNode.CreateRoot(); }