我有一个非常简单的代码段如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/lib/com.myco.app"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="20px">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="24dp"
android:layout_marginTop="10dip"
android:text="@string/planATripLabel"
android:textColor="#FF9900" />
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/planet_prompt" />
<!--local:MvxBind="ItemsSource Items; " />-->
<MvxSpinner
android:id="@+id/spinner1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/planet_prompt"
local:MvxBind="ItemsSource Items" />
</LinearLayout>
ViewModel包含以下代码:
private ObservableCollection<string> _items = new ObservableCollection<string>()
{
"One", "Two", "Three"
};
public ObservableCollection<string> Items
{
get
{
return _items;
}
set { _items = value; RaisePropertyChanged(() => Items); }
}
但是,当我运行应用程序时,不会显示任何内容。常规微调器确实显示了它的项目,因为我在视图类本身中有代码从Xamarin的站点复制,如下所示:
Spinner spinner = FindViewById<Spinner>(Resource.Id.spinner);
spinner.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(spinner_ItemSelected);
var adapter = ArrayAdapter.CreateFromResource(
this, Resource.Array.planets_array, Android.Resource.Layout.SimpleSpinnerItem);
adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
spinner.Adapter = adapter;
我错过了什么?
答案 0 :(得分:1)
我认为您的local
命名空间没有考虑MvxBind
。
我替换
xmlns:local="http://schemas.android.com/apk/lib/com.myco.app"
with(我总是像这样使用它,使用res-auto)
xmlns:local="http://schemas.android.com/apk/res-auto"
如果这不是问题,我会向MvxItemTemplate
提供自定义MvxDropDownItemTemplate
和自定义MvxSpinner
,以查看默认设置是否无效。并检查Output
窗口以查看是否显示任何错误。
如果您需要任何帮助,请告诉我。
HIH