2016-11-06 3 views
2

を示していないリストビューは、私は今...XamarinはここTextCells

items = new List<TextCell>(); 
     items.Add(new TextCell { Text = "Cake", TextColor = Color.Green, Detail = "12 hours left!", DetailColor = Color.Black}); 
     items.Add(new TextCell { Text = "Pie", TextColor = Color.Green, Detail = "14 hours left!", DetailColor = Color.Black }); 


     var buy = new ContentPage 
     { 
      Title = "Buy", 
      Content = new StackLayout 
      { 
       VerticalOptions = LayoutOptions.Center, 
       Children = { 
        new ListView 
        { 
         ItemsSource = items, 
         ItemTemplate = new DataTemplate(typeof(TextCell)) 
        } 
       } 
      } 
     }; 

ListViewコントロールが無いコンテンツを持つ2つの空白のビューが移入されて働いているコードであるフォーム。

いくつかの不動産はありますか?

答えて

1

ListViewでは、ItemsSourceはデータを含むオブジェクトのコレクションですが、ビュー/セル/その他のUIオブジェクトではありません。それらはあなたのドメインデータです。

ItemTemplateは、ListViewがそのBindingContextをItemsSourceのオブジェクトに設定するときにフィールドがすべて設定されるように、適切なバインディングが設定されたCellを返す必要があります。あなたのケースでは

、それは次のようになります。

public class ThingToBuy 
{ 
    public string What { get; set; } 
    public string HowLong { get; set; } 
} 

items = new List<ThingToBuy>(); 
items.Add(new ThingToBuy { What = "Cake", HowLong = "12 hours left!" }); 
items.Add(new ThingToBuy { What = "Pie", HowLong = "14 hours left!" }); 

     var buy = new ContentPage 
     { 
      Title = "Buy", 
      Content = new StackLayout 
      { 
       VerticalOptions = LayoutOptions.Center, 
       Children = { 
        new ListView 
        { 
         ItemsSource = items, 
         ItemTemplate = new DataTemplate(() => { 
          var cell = new TextCell(); 
          cell.SetBinding(Label.TextProperty, "What"); 
          cell.SetBinding(Label.DetailProperty, "HowLong"); 
          return cell; 
         }) 
        } 
       } 
      } 
     }; 

はのItemsSource/ItemTemplateにのより詳細な例については、リストビューのドキュメントを参照してください:https://developer.xamarin.com/api/type/Xamarin.Forms.ListView/

関連する問題