我正在开发一个MVVMCross多平台应用程序,我在转换器方面遇到以下问题:
我在Android中有一个listView,代码如下:
<MyProjectName.Droid.MvxCustomViews.MvxListView.MvxDroidListView
android:id="@+id/historicList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:listSelector="#00000000"
android:fadingEdge="none"
local:MvxBind="ItemsSource Historics;"
local:MvxItemTemplate="@layout/historiclistitem" />
Where,Historics是List。 然后,我在布局资源中:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="horizontal">
<ImageView
android:id="@+id/historicIcon"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginRight="5dp"
android:layout_gravity="center"
local:MvxBind="AssetImagePath UpdateType, Converter=HistoricTypeToSource" />
<TextView
android:id="@+id/listHistoricType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="Anexo"
android:textColor="#0000FF"
android:textSize="16sp"
android:layout_gravity="center"
local:MvxBind="Text UpdateType, Converter=HistoricTypeToString" />
</LinearLayout>
<TextView
android:id="@+id/listHistoricTypeDetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Anexo adicionado"
android:textColor="#000000"
local:MvxBind="Text ???, Converter=HistoricDetailsToString" />
问题是,一切正常,但在listHistoricTypeDetail的TextView的绑定我需要传递整个对象,因为,根据每个Historic.Action,我将添加一个使用的文本Historic.AdditionalParameter,Historic.NewValue,Historic.OldValue !!!
我没有弄清楚如何传递3个参数,具体取决于绑定到转换器的值,或者如何绑定整个对象,所以我的转换器将是这样的: MyConverter:MvxValueConverter
这是清楚的吗?任何人都可以帮助我吗?
谢谢你,
答案 0 :(得分:3)
考虑到转换的复杂性,我认为通过一个句点传递整个对象可能是最简单的:
local:MvxBind="Text ., Converter=HistoricDetailsToString"
或 - 使用Tibet-syntax - as:
local:MvxBind="Text HistoricDetailsToString(.)"
我认为维基文章也可以提供帮助:https://github.com/MvvmCross/MvvmCross/wiki/Databinding
e.g:
如果省略
$SourcePath$
或单个句点“。”如果使用,则使用的Source是整个ViewModel。
来自https://github.com/MvvmCross/MvvmCross/wiki/Databinding#swiss