2016-04-12 2 views
0

У меня есть viewmodel со списком пользовательского класса. Этот список отображается в моем ui с помощью MvxListView. Я могу Ис доступ к свойствам таможенного класса, но то, что мне сейчас нужно это способ Acces в ViewModel из них шаблона пункта без модификации класса:Mvvmcross MvxListView item viewmodel

Класса:

public class MyDataClass 
{ 
    public string Name {get; set;}; 
} 

ViewModel:

public class MyViewModel : MvxViewModel 
{ 
    //... 
    private string _sample; 
    public string Sample 
    { 
     get { return this._sample; } 
     private set { this.SetProperty(ref this._sample, value); } 
    } 

    private List<MyDataClass> _dataList; 
    public List<MyDataClass> DataList 
    { 
     get { return this._dataList; } 
     private set { this.SetProperty(ref this._dataList, value); } 
    } 
} 

MvxListView внутри Вид:

<Mvx.MvxListView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/testListView" 
    local:MvxBind="ItemsSource DataList" 
    local:MvxItemTemplate="@layout/data_item" /> 

И, наконец, data_item:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/listPreferredItemHeightSmall" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    local:MvxBind="Text Name + ???.Sample" 
    android:textColor="@color/primary" 
    android:gravity="right|center_vertical" 
    android:paddingEnd="5dp" /> 

Что мне нужно, чтобы это ???.Sample, который должен быть MyViewModel.Sample - но я не знаю, как получить его!

Примечание: Я не могу изменить MyDataClass, чтобы добавить ViewModel в качестве свойства, это должно оставаться неизменным. Сама модель Viewmodel и представления могут быть изменены без проблем, чтобы решить эту проблему.

+0

Можете ли вы изменить класс MyViewModel? – Giorgi

+0

Да, я могу, это просто MyDataClass, который должен оставаться неизменным. – Felix

ответ

0

Напишите новый класс, который обертывает класс MyDataClass и добавляет новое свойство, которое возвращает объединенное свойство, которое требуется для представления. В цикле установки Sample над списком и обновите новое свойство.

+0

Я боялся, что это придет к этому. К сожалению, нет доступа к родителям. (Кажется, это была функция, которая была запланирована, но никогда не реализована ...) – Felix

Смежные вопросы