static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            EditToolbarItemControl o = d as EditToolbarItemControl;

            o.InputValid = o.validateInput();
        }
        static void OnInputValidChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            EditToolbarItemControl o = d as EditToolbarItemControl;

            o.OnValidationStateChanged();
        }
        /// <summary>
        /// Creates the configuration UI to edit common tool proerties (e.g. label, description, icon, etc)
        /// for the current command
        /// </summary>
        /// <returns>The control containing the configuration UI</returns>
        private EditToolbarItemControl createToolPropertiesUI()
        {
            bool supportsConfiguration = Class as ISupportsConfiguration != null;
            bool supportsWizardConfiguration = Class as ISupportsWizardConfiguration != null;

            EditToolbarItemControl toolPropsUI = new EditToolbarItemControl()
            {
                Label = DisplayInfo != null ? DisplayInfo.Label : null,
                Description = DisplayInfo != null ? DisplayInfo.Description : null,
                IconUrl = DisplayInfo != null ? DisplayInfo.Icon : null,
                ToolType = Class != null ? Class.GetType() : null,
                ToolInstance = Class,
                SupportsConfiguration = supportsConfiguration && !supportsWizardConfiguration,
                OkCancelButtonVisibility = supportsWizardConfiguration || AllowToolSelection ? Visibility.Collapsed : Visibility.Visible,
                ToolbarSelectionVisibility = AllowContainerSelection ? Visibility.Visible : Visibility.Collapsed
            };

            return toolPropsUI;
        }