2016-05-20 5 views
0

Я делаю проект Xamarin.Forms с архитектурой MVVM. У меня вопрос об элементах управления.Повторитель Xamarin внутри репитера

My ViewModel содержит свойство с объектом «Песня», класс песни содержит список элементов Paragraph и Paragrah, содержащий список строк.

Песня -> Список Пункты

Paragraph -> Список песен

Я хотел бы, чтобы отобразить группу пункта с лирикой в ​​одном View с помощью MVVM архитектуры (с привязкой). Контроль ведьмы я могу использовать?


Например:


Imagine нет небо

Это легко, если вы пытаетесь

Нет ада под нами

Над нами только небо

Imagine все люди

Жизнь сегодня ...


Представьте себе, что нет ни одной страны

Это не трудно, чтобы сделать

ничего, чтобы убить или умереть за

И никакой религии тоже

Представьте себе всех людей

Живая жизнь в мире ...


Вы можете сказать, что я мечтатель

Но я не единственный

Я надеюсь, что когда-нибудь вы присоединитесь к нам

И мир будет как один


Спасибо заранее,

Bertrand

+0

Так что вы хотите показать только текст? Все строки всех абзацев? –

+0

Да, только текст @ Sven-MichaelStübe и все строки всех абзацев. –

ответ

1

Если вы хотите, чтобы отобразить текст, я бы просто ввести Lyric собственности на ViewModel.ViewModel сцепляет все строки и добавляет новые линии между ними,

class SongViewModel 
{ 
    public string Lyric { get; set; } 

    public SongViewModel(Song song) 
    { 
     Lyric = string.Join(Environment.NewLine, song.Paragraphs.SelectMany(p => p.Lines)); 
    } 

} 

class Song 
{ 
    public List<Paragraph> Paragraphs { get; set; } 
} 

class Paragraph 
{ 
    public List<string> Lines { get; set; } 
} 

А затем привязать его к метке

<Label Text="{Binding Lyric}" LineBreakMode="WordWrap"></Label> 
+0

Хорошо, он работает и прост. Спасибо за ваш ответ –

+0

Если это ответит на ваш вопрос, примите ответ (нажмите галочку), чтобы вопрос больше не отображался как неактивный. См. Http://stackoverflow.com/help/someone-answers –