2013-07-24 3 views
1

List<IGrouping<string, string>>을 표시 할 항목 템플릿이 있습니다. 이 작업을 수행하려면 WPF에서 현재 바인딩 컨텍스트에 ItemsSource을 바인드해야합니다. {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> 

답변

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 참조)

관련 문제