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."); } }
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."); } }