/// <summary> /// Receive its one sub node's one property has changed /// </summary> /// <param name="obj"> The sub node which property changed </param> /// <param name="propertyName"> The changed property name </param> protected void ReceiveSubPropertyChanged(TreeNodeNotifiableViewModel obj, string propertyName) { if (!OnSubPropertyChanged(propertyName)) { return; } OnPropertyChanged(propertyName); NotifyParentPropertyChanged(obj, propertyName); }
/// <summary> /// Report to its parent that its one property has changed. /// </summary> /// <param name="obj"> The object which property value changed </param> /// <param name="propertyName"> The changed property name </param> protected void NotifyParentPropertyChanged(TreeNodeNotifiableViewModel obj, string propertyName) { _propertyChangedNotification?.Invoke(obj, propertyName); }
public void AddNode(TreeNodeNotifiableViewModel node) { node._propertyChangedNotification = ReceiveSubPropertyChanged; base.AddNode(node); }