我现在对于Spinner(MvxSpinner)现在有一个问题,对于Android(但后来我需要它也适用于iOS)。我有在spinner期间过滤像本周,上周,本月等。此过滤器我需要为我的api服务获取数据...我的问题是我想可能使用周期类型的枚举(或mb一些更好的解决方案?)是这样的:Xamarin Android Spinner(MvxSpinner)绑定语言资源和selecteditem
枚举PeriodTypes:
public enum PeriodTypes
{
Unknown = -1,
LastSevenDays = 0,
LastWeek = 1,
ThisWeek = 2
}
我可以让这些PeriodTypes的枚举列表中,但我的问题是我必须微调串用的语言资源,但在SelectedPeriod我需要知道例如它的PeriodTypes.LastWeek并使用它从API服务获取数据,而不是像现在只是语言资源中的字符串...
我的问题是,如果我可以使用一些对象,我将例如字符串文本与语言resoruce,这我会显示在微调和在这个对象中,我需要ID为枚举或枚举类型,并在SelectedPeriod我会知道什么被选中....一些技巧如何使它?
我的视图模型实现现在的问题是:
public void Init(Shop shop)
{
_shop = shop;
_shopName = shop.Name;
InitializePeriodList();
InitializeDailySales();
}
private void InitializePeriodList()
{
_periodList = new List<string>();
_periodList.Add(CoreResources.Instance.LocalizedString(Constants.Periods, "LastSevenDays"));
_periodList.Add(CoreResources.Instance.LocalizedString(Constants.Periods, "ThisWeek"));
_periodList.Add(CoreResources.Instance.LocalizedString(Constants.Periods, "LastWeek"));
string first = null;
foreach (var s in _periodList)
{
first = s;
break;
}
_selectedPeriod = first != null ? _periodList.FirstOrDefault() : CoreResources.Instance.LocalizedString(Constants.InfoMessages, "Error");
}
private List<string> _periodList;
public List<string> PeriodList
{
get { return _periodList; }
set
{
_periodList = value;
RaisePropertyChanged(() => PeriodList);
}
}
private string _selectedPeriod;
public string SelectedPeriod
{
get { return _selectedPeriod; }
set
{
_selectedPeriod = value;
InitializeDailySales();
RaisePropertyChanged(() => SelectedPeriod);
}
}
布局实现:
<MvxSpinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/periodSpinner"
local:MvxBind="ItemsSource PeriodList; SelectedItem SelectedPeriod"
android:spinnerMode="dropdown" />