private static void PropertyEntryPropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            PropertyContainer theThis = (PropertyContainer)obj;

            // Since the underlying property has changed, chances are that the inline or extended editors
            // have changed as well, so fire events indicating that their values have changed
            theThis.NotifyTemplatesChanged();
            theThis.OnPropertyChanged("MatchesFilter");

            // Switch back to Inline mode
            theThis.ActiveEditMode = PropertyContainerEditMode.Inline;

            // Ensure that the Template property of this control is set to the right ControlTemplate
            UpdateControlTemplate(theThis);

            // Hook into PropertyEntry's changed events
            if (e.OldValue != null)
            {
                theThis.DisassociatePropertyEventHandlers((PropertyEntry)e.OldValue);
            }
            if (e.NewValue != null)
            {
                theThis.AssociatePropertyEventHandlers((PropertyEntry)e.NewValue);
            }
        }
        private static void DefaultPropertyValueEditorChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            PropertyContainer theThis = (PropertyContainer)obj;

            // Since one of the default PVE's has changed, chances are that the Inline or the Extended
            // editor template has changed as well.
            theThis.NotifyTemplatesChanged();
        }