private static void Figures_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e) { //todo: find a way to know when the points changed in the collection PathGeometry geometry = (PathGeometry)d; PathFigureCollection oldCollection = (PathFigureCollection)e.OldValue; PathFigureCollection newCollection = (PathFigureCollection)e.NewValue; if (oldCollection != newCollection) { if (oldCollection != null) { oldCollection.SetParentPath(null); } if (geometry.INTERNAL_parentPath != null && geometry.INTERNAL_parentPath._isLoaded) { if (newCollection != null) { newCollection.SetParentPath(geometry.INTERNAL_parentPath); } geometry.INTERNAL_parentPath.ScheduleRedraw(); } } }