1

我有一个项目模板,用于显示List<IGrouping<string, string>>. 为了做到这一点,我需要将一个绑定ItemsSource到当前的绑定上下文,在 WPF 中我会做一些类似于{Binding DataContext}在 MvvmCross 中如何做的事情?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
  <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    local:MvxBind="Text Key"/> !**IGrouping.Key**!
  <Mvx.MvxLinearLayout
    android:id="@+id/items"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    local:MvxBind="ItemsSource DataContext" !**This doesn't work, should bind IGrouping as IEnumerable<string>**!
    local:MvxItemTemplate="@layout/item_myitem"/>
</LinearLayout>
4

1 回答 1

2

您可以通过提供空路径来绑定到当前源。

为此,我发现最好的语法就是使用“。”

<Mvx.MvxLinearLayout
   android:id="@+id/items"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   local:MvxBind="ItemsSource ."
   local:MvxItemTemplate="@layout/item_myitem"/>

然而,有些人更喜欢使用空字符串——尽管我觉得这不太可读

<Mvx.MvxLinearLayout
   android:id="@+id/items"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   local:MvxBind="ItemsSource"
   local:MvxItemTemplate="@layout/item_myitem"/>

这个选项 - 以及更多 - 在数据绑定文章中讨论 -

https://github.com/slodge/MvvmCross/wiki/Databinding

(注意:空字符串绑定在 nuget v3.0.9 中被破坏,但应在 v3.0.10 中修复 - 请参阅为 MvxListView 绑定 ObservableCollection<string> 时出错

于 2013-07-24T13:14:13.780 回答