This is really weird behavior. But easy to solve.
First you need some type of parsing procedure, for example:
T ParseEnum<T>(object value) { if (value == null) return default(T); return (T)Enum.Parse(typeof(T), value.ToString()); }
Note: the default value for ENUM is always its value.
Then you can interact with it like this:
var _Settings = ApplicationData.Current.LocalSettings.Values; // write _Settings["Color"] = MyColors.Red.ToString() // read return ParseEnum<MyColors>(_Settings["Color"]);
Basically, we just convert it to a string.
source share