我正在开发 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" />
其中,历史是一个列表。 然后,我在布局资源中:
<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 的绑定(bind)中,我需要传递整个对象,因为根据每个 Historic.Action,我将添加一个使用 Historic.AdditionalParameter、Historic.NewValue 的文本,历史性的.OldValue!!!
我不知道如何根据绑定(bind)到转换器的值传递 3 个参数,或者如何绑定(bind)整个对象,因此我的转换器将如下所示: 我的转换器:MvxValueConverter
说清楚了吗?谁能帮我吗?
谢谢您的问候,
最佳答案
考虑到转换的复杂性,我认为传递整个对象可能是最简单的,只需使用一个句点即可:
local:MvxBind="Text ., Converter=HistoricDetailsToString"
或者 - 使用西藏语法 - 作为:
local:MvxBind="Text HistoricDetailsToString(.)"
我认为维基文章也可能有帮助:https://github.com/MvvmCross/MvvmCross/wiki/Databinding
例如:
If
$SourcePath$
is omitted or a single period "." is used, then the Source used is the whole of the ViewModel.
来自 https://github.com/MvvmCross/MvvmCross/wiki/Databinding#swiss
关于android - 在MVVMCross中的ItemTemplate中绑定(bind)item对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23061162/