Mvvmcross 迭代DataContext项,而不将其强制转换为viewmodel类型

Mvvmcross 迭代DataContext项,而不将其强制转换为viewmodel类型,mvvmcross,Mvvmcross,是一种访问DataContext中包含的项的方法,而不必显式地将其强制转换到此ViewModel 假设我在MvxFrameControl视图上绑定一个DataContext,然后在绑定后在代码中获取这个DataContext。它看起来像一个匿名对象,包含一个项目列表,这些项目被称为此ViewModel的子项。我是否可以将这些项或此DataContext的某些属性绑定到另一个对象,等等 即 我是否可以访问DataContext.Items[0],或者至少访问DataContext.Items,并将

是一种访问DataContext中包含的项的方法,而不必显式地将其强制转换到此ViewModel

假设我在MvxFrameControl视图上绑定一个DataContext,然后在绑定后在代码中获取这个DataContext。它看起来像一个匿名对象,包含一个项目列表,这些项目被称为此ViewModel的子项。我是否可以将这些项或此DataContext的某些属性绑定到另一个对象,等等

我是否可以访问DataContext.Items[0],或者至少访问DataContext.Items,并将其绑定到可观察的集合?最后,将一些项目绑定到其DataContext上的视图MVXFrameControl

因此,总结:我很好奇是否有一种方法可以在DataContext及其内容的代码隐藏中工作,这样我就可以创建一个通用的MvxFrameControl,将数据发送到基于swiss绑定的自定义视图

我有包含列表列表的ViewModels,我想在代码隐藏中处理很多情况,因为我在使用包含MVXListView的MVXListView时遇到了很多内存问题

[编辑]

这实际上就是我在代码中所做的,这让我认为我应该完全重新定义绑定是如何完成的。我将编写一个最小的伪axml:

//警告任何人:这是一个假的布局,不要使用它

查看\u myactivity\u layout.axml:

<LinearLayout>
    <MvxListView
         android:MvxItemTemplate="@layout/food_category_item"
         local:MvxBind="ItemsSource FoodCategories" />
</LinearLayout>
食品\类别\项目.axml:

<LinearLayout>
    <TextView
        local:MvxBind="Text Category" />
    <MvxListView
        android:MvxItemTemplate="@layout/list_of_food_for_a_category_item"
        local:MvxBind="ItemsSource FoodList" />
</LinearLayout>
<LinearLayout>
    <TextView
        local:MvxBind="Text NameOfThatFood" />
    <MvxListView
        android:MvxItemTemplate="@layout/list_of_colors_for_that_food_item"
        local:MvxBind="ItemsSource FoodList" />
</LinearLayout>
食品类物品的列表。axml:

<LinearLayout>
    <TextView
        local:MvxBind="Text Category" />
    <MvxListView
        android:MvxItemTemplate="@layout/list_of_food_for_a_category_item"
        local:MvxBind="ItemsSource FoodList" />
</LinearLayout>
<LinearLayout>
    <TextView
        local:MvxBind="Text NameOfThatFood" />
    <MvxListView
        android:MvxItemTemplate="@layout/list_of_colors_for_that_food_item"
        local:MvxBind="ItemsSource FoodList" />
</LinearLayout>
[等等]


嵌套绑定控件工作得很好,但滚动时会发生大量GC。所以,这就是为什么我考虑在本例中使用反射来创建自己的绑定模式。

我不完全确定您要问什么。。。如果您知道总会有一个Items集合,那么您可以使用一个接口来进行这个迭代?或者,您可以在自己的代码中使用反射来实现这一点?如果您仅在MvvmCross中查看,则可以使用基于字符串的瑞士绑定,如.To说明-或.sourcedescripted说明-等。然而,我真的不确定我是否从你的描述中理解了你的代码-所以不能再多说了-对不起。谢谢!事实上,我总结了很多我在编辑中想要达到的目标。我在列表中嵌套列表,在布局中进行绑定。我的视图模型是带有列表的列表。一切都很好,但现在似乎有一个嵌套列表,在滚动过程中经常调用GC。当从上到下滚动时,一个包含30多个项目且只有两级列表父/子项的列表最多需要400kb。