MvvMCross绑定到android布局中的<include> </include>

时间:2014-02-21 13:21:16

标签: binding include xamarin.android mvvmcross datacontext

是否可以将对象X绑定到include标记,以便包含的布局中的绑定上下文为X?我想多次使用布局,但不在列表中。

MainLayout.xml

...
<include
    android:id="@+id/btnDealerMap"
    android:layout_width="64dp"
    android:layout_height="64dp"
    android:visibility="gone"
    layout="@layout/ServiceBarButtonPhone" 
    local:MvxBind="??? X" />
...

ServiceBarButtonPhone.xml

TitleTextX的属性。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res/..."
    android:layout_width="96dp"
    android:layout_height="96dp">
    <TextView
        ...
        android:id="@+id/txtTitle"
        local:MvxBind="Text Title" />
    <TextView
        ...
        android:id="@+id/txtText"
        local:MvxBind="Text Text" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:4)

include的外部没有任何东西可以绑定 - 但你可以在文件内部放置普通绑定 - 然后它就会在编译时包含在内。请参阅以下示例:https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/ApiExamples/ApiExamples.Droid/Resources/Layout/Test_If.axml

如果您希望内部“布局”包含自己的DataContext,请尝试MvxView - 有关示例MvxFrameControl - 在N = 26的部分内容中使用 - 请参阅https://github.com/MvvmCross/NPlus1DaysOfMvvmCross/blob/b405eef7dddf4d65b00116e142855653eae9f06b/N-26-Fraggle/Rock.Droid/Resources/Layout/FirstView.axml