/// <inheritdoc/>
        public override void Execute <TOwner>(IUIComponent <TOwner> component, string value)
        {
            if (!string.IsNullOrEmpty(value))
            {
                component.Context.UIComponentAccessChainScopeCache.ExecuteWithin(() =>
                {
                    component.ExecuteBehavior <FocusBehaviorAttribute>(x => x.Execute(component));

                    base.Execute(component, value);
                });
            }
        }
        /// <inheritdoc/>
        public override void Execute <TOwner>(IUIComponent <TOwner> component, string value)
        {
            void DoExecute()
            {
                component.ExecuteBehavior <ValueClearBehaviorAttribute>(x => x.Execute(component));

                if (!string.IsNullOrEmpty(value))
                {
                    component.ExecuteBehavior <TextTypeBehaviorAttribute>(x => x.Execute(component, value));
                }
            }

            if (_useUIComponentScopeCache)
            {
                component.Context.UIComponentAccessChainScopeCache.ExecuteWithin(DoExecute);
            }
            else
            {
                DoExecute();
            }
        }