コード例 #1
0
        public override void Execute()
        {
            if (StateCommuter.Level == 0)
            {
                throw new ParseException("An object cannot start after level zero has been reached. This condition may indicate that there are more than one object at the Root Level. Please, verify that there is ONLY one root object.");
            }

            if (ConflictsWithObjectBeingConfigured)
            {
                StateCommuter.RaiseLevel();
            }

            StateCommuter.Current.XamlType = xamlType;
            OverrideInstanceAndTypeInLevel1();
        }
コード例 #2
0
        public override void Execute()
        {
            var previousMember = StateCommuter.Current.XamlMember;

            StateCommuter.RaiseLevel();
            StateCommuter.Current.IsGetObject = true;
            var instanceToGet = StateCommuter.ValueOfPreviousInstanceAndItsMember;

            StateCommuter.Current.Instance   = instanceToGet;
            StateCommuter.Current.XamlMember = previousMember;

            var collection = instanceToGet as ICollection;

            if (collection != null)
            {
                StateCommuter.Current.Collection = collection;
            }
        }
コード例 #3
0
ファイル: ValueCommand.cs プロジェクト: nagyistge/OmniXAML
        public override void Execute()
        {
            switch (StateCommuter.ValueProcessingMode)
            {
            case ValueProcessingMode.InitializationValue:
                object compatibleValue;
                CommonValueConversion.TryConvert(value, StateCommuter.Current.XamlType, valueContext, out compatibleValue);
                StateCommuter.Current.Instance    = compatibleValue;
                StateCommuter.ValueProcessingMode = ValueProcessingMode.AssignToMember;
                break;

            case ValueProcessingMode.Key:
                StateCommuter.SetKey(value);
                StateCommuter.ValueProcessingMode = ValueProcessingMode.AssignToMember;
                break;

            case ValueProcessingMode.ConstructionParameter:
                StateCommuter.AddCtorArgument(value);
                break;

            case ValueProcessingMode.AssignToMember:
                StateCommuter.RaiseLevel();
                StateCommuter.Current.Instance = value;
                StateCommuter.AssociateCurrentInstanceToParent();
                StateCommuter.DecreaseLevel();
                break;

            case ValueProcessingMode.Name:
                StateCommuter.SetNameForCurrentInstance(value);
                StateCommuter.ValueProcessingMode = ValueProcessingMode.AssignToMember;
                break;

            default:
                throw new ParseException(
                          "Unexpected mode was set trying to process a Value XAML instruction. " +
                          $"We found \"{StateCommuter.ValueProcessingMode}\") and it cannot be handled.");
            }
        }
コード例 #4
0
        public override void Execute()
        {
            switch (StateCommuter.ValueProcessingMode)
            {
            case ValueProcessingMode.InitializationValue:
                StateCommuter.Current.Instance = ValuePipeLine.ConvertValueIfNecessary(value, StateCommuter.Current.XamlType);

                break;

            case ValueProcessingMode.Key:
                StateCommuter.SetKey(value);
                StateCommuter.ValueProcessingMode = ValueProcessingMode.AssignToMember;
                break;

            case ValueProcessingMode.ConstructionParameter:
                StateCommuter.AddCtorArgument(value);
                break;

            case ValueProcessingMode.AssignToMember:
                StateCommuter.RaiseLevel();
                StateCommuter.Current.Instance = value;
                StateCommuter.AssignChildToParentProperty();
                StateCommuter.DecreaseLevel();
                break;

            case ValueProcessingMode.Name:
                StateCommuter.SetNameForCurrentInstance(value);
                StateCommuter.ValueProcessingMode = ValueProcessingMode.AssignToMember;
                break;

            default:
                throw new XamlParseException(
                          "Unexpected mode was set trying to process a Value XAML instruction. " +
                          $"We found \"{StateCommuter.ValueProcessingMode}\") and it cannot be handled.");
            }
        }