{"record":{"id":"46e4dd51a45fbf39","repo":"dotnet/maui","slug":"xc0044","errorCode":"XC0044","errorMessage":"Binding: \"{0}\" cannot be parsed as an index for a \"{1}\".","messagePattern":"Binding: \"(.+?)\" cannot be parsed as an index for a \"(.+?)\"\\.","errorType":"exception","errorClass":"BuildException","httpStatus":null,"severity":"error","filePath":"src/Controls/src/Build.Tasks/SetPropertiesVisitor.cs","lineNumber":987,"sourceCode":"\t\t\t\t\t\t\t\t\t// long/ulong enums require Ldc_I8; all narrower types fit in Ldc_I4.\n\t\t\t\t\t\t\t\t\tvar underlyingType = indexTypeDef.GetEnumUnderlyingType();\n\t\t\t\t\t\t\t\t\tif (underlyingType.FullName == \"System.Int64\" || underlyingType.FullName == \"System.UInt64\")\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar longValue = underlyingType.FullName == \"System.UInt64\"\n\t\t\t\t\t\t\t\t\t\t\t? unchecked((long)Convert.ToUInt64(enumField.Constant))\n\t\t\t\t\t\t\t\t\t\t\t: Convert.ToInt64(enumField.Constant);\n\t\t\t\t\t\t\t\t\t\tyield return Create(Ldc_I8, longValue);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar enumValue = underlyingType.FullName == \"System.UInt32\"\n\t\t\t\t\t\t\t\t\t\t\t? unchecked((int)Convert.ToUInt32(enumField.Constant))\n\t\t\t\t\t\t\t\t\t\t\t: Convert.ToInt32(enumField.Constant);\n\t\t\t\t\t\t\t\t\t\tyield return Create(Ldc_I4, enumValue);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\tthrow new BuildException(BindingIndexerParse, lineInfo, null, indexArg, property.Name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tthrow new BuildException(BindingIndexerParse, lineInfo, null, indexArg, property.Name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (indexArg != null && property == null)\n\t\t\t\t\tyield return Create(Ldelem_Ref);\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar getMethod = module.ImportReference((module.ImportReference(property.GetMethod)).ResolveGenericParameters(propDeclTypeRef, module));\n\n\t\t\t\t\tif (property.GetMethod.IsVirtual)\n\t\t\t\t\t\tyield return Create(Callvirt, getMethod);\n\t\t\t\t\telse\n\t\t\t\t\t\tyield return Create(Call, getMethod);\n\t\t\t\t}","sourceCodeStart":969,"sourceCodeEnd":1005,"githubUrl":"https://github.com/dotnet/maui/blob/f377ff1c5ee04d334d8a925f50c83a6b7afddf03/src/Controls/src/Build.Tasks/SetPropertiesVisitor.cs#L969-L1005","documentation":"Thrown in DigProperties when the resolved indexer takes an enum parameter, but the indexArg string does not match any static field name on that enum. The compiler looks up `indexTypeDef.Fields.FirstOrDefault(f => f.IsStatic && f.Name == indexArg)` and, finding none, throws BindingIndexerParse.","triggerScenarios":"Binding to an enum-keyed indexer with a value that is not a defined enum member, e.g. `{Binding Map[MissingKey]}` where the enum has no `MissingKey` member.","commonSituations":"Typo in the enum member used as a key; the enum member was renamed/removed; wrong enum type resolved for the indexer.","solutions":["Use a valid, correctly-spelled enum member name as the index argument.","Confirm the indexer's enum type and its current members.","Rebuild referencing assemblies if the enum changed."],"exampleFix":"<!-- before -->\n<Label Text=\"{Binding Lookup[Magrent], x:DataType=vm:Vm}\" />\n\n<!-- after (valid enum member) -->\n<Label Text=\"{Binding Lookup[Magenta], x:DataType=vm:Vm}\" />","handlingStrategy":"validation","validationCode":"// The indexer argument must be a member of the enum key type\nstatic bool IsValidEnumIndex(Type enumKey, string indexArg)\n    => enumKey.IsEnum && Enum.GetNames(enumKey).Contains(indexArg);","typeGuard":"static bool IsEnumMember<T>(string name) where T : struct, Enum => Enum.IsDefined(typeof(T), name);","tryCatchPattern":null,"preventionTips":["Use exact, defined enum member names as enum-indexer arguments.","Keep enum members stable for types used as binding keys.","Re-validate bindings after renaming enum members."],"tags":["xaml","xamlc","compiled-bindings","indexer","enum"],"backgroundTag":null,"analyzedSha":"f377ff1c5ee04d334d8a925f50c83a6b7afddf03","analyzedAt":"2026-08-13T14:26:18.069Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}