我正在尝试在我的Xamarin应用程序中使用来自ENUM的值构建一个Spinner。 我这样做的方式是这样的:
view.FindViewById<Spinner>(Resource.Id.my_spinner).Adapter = new ArrayAdapter<String>(context, layout, Resources.GetStringArray(Resource.my_enum_array));
在我的values/Strings.xml
:
<string-array name="my_enum_array">
<item>Enum Item 1</item>
<item>Enum Item 2</item>
</string-array>
但改变MyEnum,Strings上的数组已经过时了。
如何将值绑定到我的Spinner而无需关心它具有哪些字段?
答案 0 :(得分:0)
您可以使用Enum.GetValues(typeof(YourEnum))
获取枚举的所有值。然后,您可以使用它为您的适配器创建数组。
var enumValues = Enum.GetValues(typeof(YOUR_ENUM));
var arrayForAdapter = enumValues.Cast<YOUR_ENUM>().Select(e => e.ToString()).ToArray();
var adapter = new ArrayAdapter<string>(context, layout, arrayForAdapter);
您需要使用System.Linq
添加一个。
using System.Linq;
我没有尝试过运行此代码,但我认为应该非常接近。如果您有任何问题,请告诉我。
编辑添加了Cast
以将对象数组转换为IEnumerable<YOUR_ENUM>
。