Xamarin,MVVMCross显示DisplayMemberPath
我正在用Xamarin和MVVMCross构建一个本地android项目。我使用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;
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
,会发生什么?