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 并且有效
我可以将数组 _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 并且有效