Xamarin,MVVMCross显示DisplayMemberPath

Xamarin,MVVMCross显示DisplayMemberPath,xamarin,xamarin.android,mvvmcross,Xamarin,Xamarin.android,Mvvmcross,我正在用Xamarin和MVVMCross构建一个本地android项目。我使用Mvx.MvxSpinner作为元素来加载数据(这是MVVMCross方式) 我有以下问题:我有一个具有不同数据元素的类和一个微调器,我在其中绑定了一个newlist(),其中包含元素是否有方法实际绑定到dataclass中的Name属性(与WPF中的DisplayMemberPath相同) 数据类: public class DataClass { public string Name { get; set;

我正在用Xamarin和MVVMCross构建一个本地android项目。我使用
Mvx.MvxSpinner
作为元素来加载数据(这是MVVMCross方式)

我有以下问题:我有一个具有不同数据元素的类和一个微调器,我在其中绑定了一个
newlist()
,其中包含元素是否有方法实际绑定到dataclass中的Name属性(与WPF中的
DisplayMemberPath
相同)

数据类:

public class DataClass
{
   public string Name { get; set; }
}
视图模型:

public ObservableCollection<DataClass> Lines
{
    get => GetPropertyValue<ObservableCollection<DataClass>>();
    set => SetPropertyValue(value);
}
公共可观测采集线
{
get=>GetPropertyValue();
set=>SetPropertyValue(值);
}
视图:


默认方法

默认情况下,MvvmCross将只调用所列模型的
ToString
。因此,您可以覆盖
ToString
以返回名称

public class DataClass
{
    public string Name { get; set; }

    public override string ToString() => Name;
}
模板方法

如果希望对外观和绑定有更多的控制,可以创建自定义Xml模板

<Mvx.MvxSpinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    local:MvxBind="ItemsSource Lines; SelectedItem SelectedLine"
    local:MvxDropDownItemTemplate="@layout/item_template_dropdown"
    local:MvxItemTemplate="@layout/item_template_spinner" />

默认方法

默认情况下,MvvmCross将只调用所列模型的
ToString
。因此,您可以覆盖
ToString
以返回名称

public class DataClass
{
    public string Name { get; set; }

    public override string ToString() => Name;
}
模板方法

如果希望对外观和绑定有更多的控制,可以创建自定义Xml模板

<Mvx.MvxSpinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    local:MvxBind="ItemsSource Lines; SelectedItem SelectedLine"
    local:MvxDropDownItemTemplate="@layout/item_template_dropdown"
    local:MvxItemTemplate="@layout/item_template_spinner" />

如果不可能,我也可以只使用适配器。如果在XML绑定中将
SelectedLine
更改为
SelectedLine.Name
,会发生什么?如果不可能,我也可以只使用适配器。如果在XML绑定中将
SelectedLine
更改为
SelectedLine.Name
,会发生什么?