protected override void OnVisualParentChanged(DependencyObject oldParent) { base.OnVisualParentChanged(oldParent); _parentTreeMaps = this.ParentTreeMap; if (_parentTreeMaps != null) { Binding bindingMode = new Binding(TreeMaps.TreeMapModeProperty.Name); bindingMode.Source = _parentTreeMaps; BindingOperations.SetBinding(this, TreeMapItem.TreeMapModeProperty, bindingMode); Binding bindingValue = new Binding(TreeMaps.ValuePropertyNameProperty.Name); bindingValue.Source = _parentTreeMaps; BindingOperations.SetBinding(this, TreeMapItem.ValuePropertyNameProperty, bindingValue); Binding bindingMinArea = new Binding(TreeMaps.MinAreaProperty.Name); bindingMinArea.Source = _parentTreeMaps; BindingOperations.SetBinding(this, TreeMapItem.MinAreaProperty, bindingMinArea); Binding bindingMaxDepth = new Binding(TreeMaps.MaxDepthProperty.Name); bindingMaxDepth.Source = _parentTreeMaps; BindingOperations.SetBinding(this, TreeMapItem.MaxDepthProperty, bindingMaxDepth); } }