我有一个项目模板,用于显示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>
答案 0 :(得分: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中修复 - 请参阅Error when making bind ObservableCollection<string> for a MvxListView)