{"record":{"id":"0d9f4a62863570eb","repo":"dotnet/wpf","slug":"invalidenumargumentexception-value-int-value-typeof-0d9f4a","errorCode":null,"errorMessage":"InvalidEnumArgumentException(\"value\", (int) value, typeof(UpdateSourceTrigger))","messagePattern":"InvalidEnumArgumentException\\(\"value\", \\(int\\) value, typeof\\(UpdateSourceTrigger\\)\\)","errorType":"exception","errorClass":"InvalidEnumArgumentException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Data/Binding.cs","lineNumber":391,"sourceCode":"            get\n            {\n                switch (GetFlagsWithinMask(BindingFlags.UpdateMask))\n                {\n                    case BindingFlags.UpdateOnPropertyChanged: return UpdateSourceTrigger.PropertyChanged;\n                    case BindingFlags.UpdateOnLostFocus:    return UpdateSourceTrigger.LostFocus;\n                    case BindingFlags.UpdateExplicitly:     return UpdateSourceTrigger.Explicit;\n                    case BindingFlags.UpdateDefault:        return UpdateSourceTrigger.Default;\n                }\n                Invariant.Assert(false, \"Unexpected UpdateSourceTrigger value\");\n                return 0;\n            }\n            set\n            {\n                CheckSealed();\n\n                BindingFlags flags = FlagsFrom(value);\n                if (flags == BindingFlags.IllegalInput)\n                    throw new InvalidEnumArgumentException(\"value\", (int) value, typeof(UpdateSourceTrigger));\n\n                ChangeFlagsWithinMask(BindingFlags.UpdateMask, flags);\n            }\n        }\n\n        /// <summary> Raise SourceUpdated event whenever a value flows from target to source </summary>\n        [DefaultValue(false)]\n        public bool NotifyOnSourceUpdated\n        {\n            get\n            {\n                return TestFlag(BindingFlags.NotifyOnSourceUpdated);\n            }\n            set\n            {\n                bool currentValue = TestFlag(BindingFlags.NotifyOnSourceUpdated);\n                if (currentValue != value)\n                {","sourceCodeStart":373,"sourceCodeEnd":409,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Data/Binding.cs#L373-L409","documentation":"The Binding.UpdateSourceTrigger setter maps the UpdateSourceTrigger value via FlagsFrom; an unrecognized value yields BindingFlags.IllegalInput and throws InvalidEnumArgumentException for parameter 'value'. Only PropertyChanged, LostFocus, Explicit, and Default are accepted.","triggerScenarios":"binding.UpdateSourceTrigger = (UpdateSourceTrigger)42; ints deserialized from config cast unchecked into the enum; code generators emitting wrong enum constants.","commonSituations":"Round-tripping binding definitions through settings or serialization; dynamic UI builders driven by user-selected numeric values.","solutions":["Assign only valid UpdateSourceTrigger members (Default, PropertyChanged, LostFocus, Explicit).","Guard with Enum.IsDefined(typeof(UpdateSourceTrigger), value) before assignment.","Fall back to UpdateSourceTrigger.Default for unknown persisted values."],"exampleFix":"// before\nbinding.UpdateSourceTrigger = (UpdateSourceTrigger)stored;\n// after\nbinding.UpdateSourceTrigger = Enum.IsDefined(typeof(UpdateSourceTrigger), stored) ? (UpdateSourceTrigger)stored : UpdateSourceTrigger.Default;","handlingStrategy":"validation","validationCode":"if (!Enum.IsDefined(typeof(UpdateSourceTrigger), value))\n    throw new InvalidEnumArgumentException(nameof(value), (int)value, typeof(UpdateSourceTrigger));\nbinding.UpdateSourceTrigger = (UpdateSourceTrigger)value;","typeGuard":"static bool IsValidTrigger(int v) => Enum.IsDefined(typeof(UpdateSourceTrigger), v);","tryCatchPattern":"try { binding.UpdateSourceTrigger = (UpdateSourceTrigger)stored; } catch (InvalidEnumArgumentException) { binding.UpdateSourceTrigger = UpdateSourceTrigger.Default; }","preventionTips":["Restrict selectable values in UI builders to the four defined UpdateSourceTrigger members.","Validate enum round-trips through config/serialization.","Default to UpdateSourceTrigger.Default for unrecognized values."],"tags":["wpf","binding","enum","argument"],"backgroundTag":"invalid-enum-value","analyzedSha":"81131a70a4c573cd62748a5c36908fc4d662daa9","analyzedAt":"2026-09-14T10:12:48.479Z","contentChangedAt":"2026-09-14T10:12:48.479Z","schemaVersion":2},"datasetVersion":"2026-09-22T01:17:13.364Z"}