private static DirectiveKind GetDirectiveKind(XamlMemberBase xamlMember) { if (xamlMember.Equals(CoreTypes.Initialization)) { return DirectiveKind.Initialization; } if (xamlMember.Equals(CoreTypes.Items)) { return DirectiveKind.Items; } if (xamlMember.Equals(CoreTypes.Key)) { return DirectiveKind.Key; } if (xamlMember.Equals(CoreTypes.MarkupExtensionArguments)) { return DirectiveKind.MarkupExtensionArguments; } if (xamlMember.Equals(CoreTypes.Name)) { return DirectiveKind.Name; } if (xamlMember.Equals(CoreTypes.UnknownContent)) { return DirectiveKind.UnknownContent; } throw new InvalidOperationException($"Unexpected XAML directive. The directive {xamlMember} has been found and we don't know how to handle it."); }
private static DirectiveKind GetDirectiveKind(XamlMemberBase xamlMember) { if (xamlMember.Equals(CoreTypes.Initialization)) { return(DirectiveKind.Initialization); } if (xamlMember.Equals(CoreTypes.Items)) { return(DirectiveKind.Items); } if (xamlMember.Equals(CoreTypes.Key)) { return(DirectiveKind.Key); } if (xamlMember.Equals(CoreTypes.MarkupExtensionArguments)) { return(DirectiveKind.MarkupExtensionArguments); } if (xamlMember.Equals(CoreTypes.Name)) { return(DirectiveKind.Name); } if (xamlMember.Equals(CoreTypes.UnknownContent)) { return(DirectiveKind.UnknownContent); } throw new InvalidOperationException($"Unexpected XAML directive. The directive {xamlMember} has been found and we don't know how to handle it."); }
private XamlMemberBase GetMember(XamlMemberBase member) { if (IsLevelOneAndThereIsRootInstance && !member.IsDirective) { return(rootInstanceXamlType == null ? member : rootInstanceXamlType.GetMember(member.Name)); } return(member); }
private static string TranslateDirectiveName(XamlMemberBase member) { if (member.Name == "_MarkupExtensionParameters") { return "_PositionalParameters"; } return member.Name; }
private static string TranslateDirectiveName(XamlMemberBase member) { if (member.Name == "_MarkupExtensionParameters") { return("_PositionalParameters"); } return(member.Name); }
public static XamlMember ToWpf(this XamlMemberBase member, XamlSchemaContext context) { if (member.IsDirective) { return(GetDirective(member, context)); } return(GetMember((MutableXamlMember)member, context)); }
public ProtoXamlInstruction Attribute(XamlMemberBase member, string value, string prefix) { return(new ProtoXamlInstruction { PropertyAttribute = member, NodeType = NodeType.Attribute, PropertyAttributeText = value, Prefix = prefix, }); }
private static XamlMember GetDirective(XamlMemberBase directive, XamlSchemaContext context) { var directiveName = TranslateDirectiveName(directive); var xamlMember = from ns in context.GetAllXamlNamespaces() let dir = context.GetXamlDirective(ns, directiveName) where dir != null select dir; return new DirectiveAdapter(xamlMember.First()); }
private static XamlMember GetDirective(XamlMemberBase directive, XamlSchemaContext context) { var directiveName = TranslateDirectiveName(directive); var xamlMember = from ns in context.GetAllXamlNamespaces() let dir = context.GetXamlDirective(ns, directiveName) where dir != null select dir; return(new DirectiveAdapter(xamlMember.First())); }
private IEnumerable<XamlInstruction> ParseCollectionInsideThisProperty(XamlMemberBase member) { yield return Inject.StartOfMember(member); yield return Inject.GetObject(); yield return Inject.Items(); foreach (var instruction in ParseElements()) { yield return instruction; } yield return Inject.EndOfMember(); yield return Inject.EndOfObject(); yield return Inject.EndOfMember(); }
public void WriteStartMember(XamlMemberBase property) { bag.Current.Property = property; if (bag.Current.Instance == null) { if (property.IsDirective && !IsConstructionDirective((XamlDirective) property)) { objectAssembler.PrepareNewInstanceBecauseWeWantToConfigureIt(bag); } if (Equals(property, CoreTypes.MarkupExtensionArguments)) { SetupCurrentCollectionToHoldPositionalArguments(); } } }
private IEnumerable <XamlInstruction> ParseCollectionInsideThisProperty(XamlMemberBase member) { yield return(Inject.StartOfMember(member)); yield return(Inject.GetObject()); yield return(Inject.Items()); foreach (var instruction in ParseElements()) { yield return(instruction); } yield return(Inject.EndOfMember()); yield return(Inject.EndOfObject()); yield return(Inject.EndOfMember()); }
public static XamlInstruction StartOfMember(XamlMemberBase member) { return new XamlInstruction(XamlInstructionType.StartMember, member); }
public static XamlNode StartOfMember(XamlMemberBase member) { return new XamlNode(XamlNodeType.StartMember, member); }
private XamlMemberBase GetMember(XamlMemberBase member) { if (IsLevelOneAndThereIsRootInstance && !member.IsDirective) { return rootInstanceXamlType == null ? member : rootInstanceXamlType.GetMember(member.Name); } return member; }
protected bool Equals(XamlMemberBase other) { return(string.Equals(Name, other.Name) && XamlType.Equals(other.XamlType)); }
public StartMemberCommand(ObjectAssembler assembler, XamlMemberBase member) : base(assembler) { this.member = member; }
private XamlMemberBase GetMember(XamlMemberBase member) { if (IsLevelOneAndThereIsRootInstance) { var xamlMember = WiringContext.GetType(rootInstanceType).GetMember(member.Name); return rootInstanceType == null ? member : xamlMember; } return member; }
public StartMemberCommand(SuperObjectAssembler assembler, XamlMemberBase member) : base(assembler) { this.member = member; }
protected bool Equals(XamlMemberBase other) { return string.Equals(Name, other.Name) && XamlType.Equals(other.XamlType); }
private void SetCommuterStateAccordingToDirective(XamlMemberBase xamlMemberBase) { switch (GetDirectiveKind(xamlMemberBase)) { case DirectiveKind.Items: if (!StateCommuter.ParentIsOneToMany) { throw new XamlParseException("Cannot assign a more than one item to a member that is not a collection."); } break; case DirectiveKind.Initialization: StateCommuter.ValueProcessingMode = ValueProcessingMode.InitializationValue; break; case DirectiveKind.Key: StateCommuter.ValueProcessingMode = ValueProcessingMode.Key; break; case DirectiveKind.MarkupExtensionArguments: StateCommuter.Current.CtorArguments = new Collection<ConstructionArgument>(); StateCommuter.ValueProcessingMode = ValueProcessingMode.ConstructionParameter; break; case DirectiveKind.Name: StateCommuter.ValueProcessingMode = ValueProcessingMode.Name; break; case DirectiveKind.UnknownContent: AccommodateLevelsForIncomingChildren(); break; } }
private static bool IsAssignmentBeingMadeToContainer(XamlMemberBase parentProperty, XamlType type) { return parentProperty.IsDirective && type.IsContainer; }
private static bool IsMemberEquivalentToNameDirective(XamlMemberBase memberToCheck) { return memberToCheck.Name == "Name"; }
public static XamlInstruction StartOfMember(XamlMemberBase member) { return new XamlInstruction(XamlInstructionType.StartMember, member); }