{"record":{"id":"dc40c8d4e4c7fee5","repo":"dotnet/wpf","slug":"sr-format-sr-inputscope-invalidinputscopename-value","errorCode":null,"errorMessage":"SR.Format(SR.InputScope_InvalidInputScopeName, \"value\")","messagePattern":"SR\\.Format\\(SR\\.InputScope_InvalidInputScopeName, \"value\"\\)","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputScope.cs","lineNumber":171,"sourceCode":"            // throw new System.NotImplementedException();\n        }\n\n#endregion IAddChild\n\n#endregion Public Methods\n\n#region class public properties\n        ///<summary>\n        /// Name property - this is used when accessing the string that is set to InputScopePhrase\n        ///</summary>\n        public InputScopeNameValue NameValue\n        {\n            get { return _nameValue; }\n            set \n            { \n                if (!IsValidInputScopeNameValue(value))\n                {\n                    throw new ArgumentException(SR.Format(SR.InputScope_InvalidInputScopeName, \"value\"));\n                }\n                _nameValue = value; \n            }\n        }\n\n#endregion class public properties\n\n        ///<summary>\n        /// This validates the value for InputScopeName.\n        ///</summary>\n        private bool IsValidInputScopeNameValue(InputScopeNameValue name)\n        {\n            switch (name)\n            {\n                case InputScopeNameValue.Default                   : break; // = 0,  // IS_DEFAULT\n                case InputScopeNameValue.Url                       : break; // = 1,  // IS_URL\n                case InputScopeNameValue.FullFilePath              : break; // = 2,  // IS_FILE_FULLFILEPATH\n                case InputScopeNameValue.FileName                  : break; // = 3,  // IS_FILE_FILENAME","sourceCodeStart":153,"sourceCodeEnd":189,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputScope.cs#L153-L189","documentation":"The NameValue property setter of InputScopeName validates the value against IsValidInputScopeNameValue and throws ArgumentException when it is not a recognized InputScopeNameValue. The library only accepts defined, supported input scope name values.","triggerScenarios":"Setting InputScopeName.NameValue to an arbitrary int cast or an undefined InputScopeNameValue enum member, e.g. new InputScopeName { NameValue = (InputScopeNameValue)9999 }.","commonSituations":"Casting raw integers from persisted config into InputScopeNameValue; typing errors when using enum values; data binding a string/int directly to NameValue.","solutions":["Assign only valid InputScopeNameValue enum members (e.g. InputScopeNameValue.Number, .EmailUserName)","Validate the value with Enum.IsDefined(typeof(InputScopeNameValue), v) before assigning","Fix whatever serialization produced the out-of-range numeric value"],"exampleFix":"// before\nscopeName.NameValue = (InputScopeNameValue)9999;\n// after\nif (Enum.IsDefined(typeof(InputScopeNameValue), 9999))\n    scopeName.NameValue = (InputScopeNameValue)9999;\nelse\n    scopeName.NameValue = InputScopeNameValue.Default;","handlingStrategy":"validation","validationCode":"bool isValid = value is InputScopeNameValue v && Enum.IsDefined(typeof(InputScopeNameValue), v);","typeGuard":"bool IsValidScopeName(object v) => v is InputScopeNameValue e && Enum.IsDefined(typeof(InputScopeNameValue), e);","tryCatchPattern":"try { name.NameValue = v; } catch (ArgumentException ex) { /* fallback to InputScopeNameValue.Default */ }","preventionTips":["Always assign named InputScopeNameValue members, never raw ints","Validate enum values with Enum.IsDefined after deserialization"],"tags":["wpf","argument-exception","enum"],"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-21T21:30:21.729Z"}