2017-02-20 37 views
0

Я создал DataTemplate для моего ListView, но текст ListViewItems не отображается. Как связать текст с ItemsSource?Установить привязку с ItemsSource на метку в ListView DataTemplate без XAML

List<string> stringList; 

ListView myListView = new ListView 
{ 
    ItemsSource = stringList, 
    ItemTemplate = new DataTemplate(() => 
    { 
     StackLayout sl = new StackLayout 
     { 
      VerticalOptions = LayoutOptions.FillAndExpand, 
      Orientation = StackOrientation.Horizontal, 
     }; 
     sl.Children.Add(new Label 
     { 
      FontSize = 14, 
     }); 

     return new ViewCell { View = sl }; 
}) 

ответ

1

Инициализировать этикетку, прежде чем добавить в свой StackLayout, назовем его temp к примеру и bind его, как это пользовательский объект:

temp.SetBinding (Label.TextProperty, "TemplatePropertyThatYouWish"); 

И это список строк:

temp.SetBinding(Label.TextProperty, "."); 

Затем добавьте его в свой StackLayout.

Код:

List<string> stringList = new List<string> { "a", "b", "c" }; 

ListView myListView = new ListView 
{ 
    ItemsSource = stringList, 
    ItemTemplate = new DataTemplate(() => 
    { 
     StackLayout sl = new StackLayout 
     { 
      VerticalOptions = LayoutOptions.FillAndExpand, 
      Orientation = StackOrientation.Horizontal, 
     }; 

     var temp = new Label 
     { 
      FontSize = 14, 
     }; 

     temp.SetBinding(Label.TextProperty, "."); 

     sl.Children.Add(temp); 

     return new ViewCell { View = sl }; 
    }) 
}; 
+0

Но что второй аргумент, который я должен использовать, если мне нужно, чтобы связать свою ItemSource со списком цепочек? – InfernumDeus

+0

Обновлено @InfernumDeus – Zroq