コード例 #1
0
        public override void Execute()
        {
            if (!StateCommuter.Current.IsGetObject)
            {
                StateCommuter.CreateInstanceOfCurrentXamlTypeIfNotCreatedBefore();
                StateCommuter.PutNameToCurrentInstanceIfAny();

                var instance = StateCommuter.Current.Instance;

                if (instance is IMarkupExtension)
                {
                    ProcessCurrentInstanceValueWithMarkupExtension();
                }
                else if (!StateCommuter.WasAssociatedRightAfterCreation)
                {
                    StateCommuter.AssociateCurrentInstanceToParent();
                }

                StateCommuter.RegisterInstanceNameToNamescope();
                lifyCycleListener.OnAfterProperties(instance);
                lifyCycleListener.OnEnd(instance);
            }

            setResult(StateCommuter);

            StateCommuter.DecreaseLevel();
        }