I need to have a language select drop down on a data form so I used a language enum as one of the properties on the view model. The drop-down works fine on UWP but throws an exception when rendering on Android. It works fine on Android if I change the field type to string instead of enum. Here is the view model:
public class AppConfiguration
{
[DisplayOptions(Header = "API URL")]
public string ApiUrl { get; set; }
[DisplayOptions(Header = "Preferred Culture")]
[Ignore]
public string Culture { get; set; }
public enum LanguageChoices { English, French };
//[DisplayOptions(Header = "Preferred Language")]
//public string LanguageChoice
// {
// get
// {
// if(string.IsNullOrEmpty(Culture))
// Culture="en-CA";
// switch(Culture.Substring(0, 2).ToLower())
// {
// case "en":
// return "English";
// case "fr":
// return "French";
// default:
// return "English";
// }
// }
// set
// {
// switch(value.Substring(0, 2).ToLower())
// {
// case "fr":
// Culture="fr-CA";
// break;
// case "en":
// Culture="en-CA";
// break;
// default:
// Culture="en-CA";
// break;
// }
// }
// }
[DisplayOptions(Header = "Preferred Language")]
public LanguageChoices LanguageChoice
{
get
{
if(string.IsNullOrEmpty(Culture))
Culture="en-CA";
switch(Culture.Substring(0, 2).ToLower())
{
case "en":
return LanguageChoices.English;
case "fr":
return LanguageChoices.French;
default:
return LanguageChoices.English;
}
}
set
{
switch(value)
{
case LanguageChoices.French:
Culture="fr-CA";
break;
case LanguageChoices.English:
Culture="en-CA";
break;
default:
Culture="en-CA";
break;
}
}
}
}