protected override void OnParentSet() { if (RealParent != null) { RealParent.PropertyChanged += OnParentPropertyChanged; RealParent.PropertyChanging += OnParentPropertyChanging; } base.OnParentSet(); PropertyPropagationController.PropagatePropertyChanged(null); }
void OnParentPropertyChanged(object sender, PropertyChangedEventArgs e) { // Technically we might be raising this even if it didn't change, but I'm taking the bet that // its uncommon enough that we don't want to take the penalty of N GetValue calls to verify. if (e.PropertyName == "RowHeight") { OnPropertyChanged("RenderHeight"); } else if (e.PropertyName == VisualElement.FlowDirectionProperty.PropertyName || e.PropertyName == VisualElement.VisualProperty.PropertyName) { PropertyPropagationController.PropagatePropertyChanged(e.PropertyName); } }
protected override void OnPropertyChanging(string propertyName = null) { if (propertyName == "Parent") { if (RealParent != null) { RealParent.PropertyChanged -= OnParentPropertyChanged; RealParent.PropertyChanging -= OnParentPropertyChanging; } PropertyPropagationController.PropagatePropertyChanged(null); } base.OnPropertyChanging(propertyName); }