protected virtual void OnEditorWindowSaveExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            Window window             = (Window)sender;
            PropertyGridProperty prop = window.DataContext as PropertyGridProperty;

            if (prop != null)
            {
                prop.Executed(sender, e);
            }
        }
        protected virtual void OnEditorWindowCloseExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            Window window             = (Window)sender;
            PropertyGridProperty prop = window.DataContext as PropertyGridProperty;

            if (prop != null)
            {
                prop.Executed(sender, e);
                if (e.Handled)
                {
                    return;
                }
            }
            window.Close();
        }
        protected virtual void OnBrowseCommandExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            RoutedEventArgs browse = new RoutedEventArgs(BrowseEvent, e.OriginalSource);

            RaiseEvent(browse);
            if (browse.Handled)
            {
                return;
            }

            PropertyGridProperty property = PropertyGridProperty.FromEvent(e);

            if (property != null)
            {
                property.Executed(sender, e);
                if (!e.Handled)
                {
                    ShowEditor(property, e.Parameter);
                }
            }
        }