Xamarin Android 微调器绑定选择不起作用

Xamarin Android Spinner Binding Selection not working

我可以将数组 _limitQuickPosts 绑定到我的微调器。但是我很难弄清楚如何将 Selected 绑定到我的 _selectedLimitQuickPosts。无论我做什么,我都无法将 Selected 值设置为 "Show last 200 Posts".

核心视图模型:

private string[] _limitQuickPosts = new string[4]
{
    "Show last 25 Posts",
    "Show last 50 Posts",
    "Show last 100 Posts",
    "Show last 200 Posts"
};
public string[] LimitQuickPosts 
{
    get { return _limitQuickPosts; }
    set { _limitQuickPosts = value; RaisePropertyChanged(() => LimitQuickPosts); }
}

private string _selectedLimitQuickPosts = "Show last 200 Posts";
public string SelectedLimitQuickPosts 
{
    get { return _selectedLimitQuickPosts; }
    set { _selectedLimitQuickPosts = value; RaisePropertyChanged(() => SelectedLimitQuickPosts); }
}

机器人布局:

<MvxSpinner
        android:layout_width="210dp"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        android:id="@+id/limitSelect"
        android:minWidth="50dp"
        android:layout_marginLeft="10dp" />

机器人视图:

...
var limitSelect = fragView.FindViewById<MvxSpinner>(Resource.Id.limitSelect);
...
...
set.Bind(limitSelect).For(x => x.ItemsSource).To(vm => vm.LimitQuickPosts);
set.Bind(limitSelect).For(x => x.Selected).To(vm => vm.SelectedLimitQuickPosts);

虽然它适当地将 LimitQuickPosts 绑定到 Spinner,并且我可以看到所有可用的选择,但我仍然在摸不着头脑,想知道 Selected 是如何不绑定的以及我必须做什么才能正确绑定?

看到这个问题:

您必须从 Setup.cs 的 FillTargetFactories()

调用 MvxAppCompatSetupHelper.FillTargetFactories

问题是:

set.Bind(limitSelect).For(x => x.Selected).To(vm => vm.SelectedLimitQuickPosts);

应该是:

set.Bind(limitSelect).For(x => x.SelectedItem).To(vm => vm.SelectedLimitQuickPosts);

将 Selected 替换为 SelectedItem 并且有效