Xamarin.Forms列表视图,包含简单的主要文本/明细文本

时间:2017-11-08 21:43:37

标签: c# xamarin.forms

Xamarin网站上的示例没有显示如何简单地获取数据对象列表并使用带有主文本和详细文本的TextCells填充ListView的代码。

我的代码如下所示:

var newsListings = await App.Api.News.GetNewsAsync(true);
                var simpleNews = new List<TextCell>();

                foreach (var newsData in newsListings.news)
                {
                    simpleNews.Add(new TextCell() { Text = $"{newsData.displayText}", TextColor = Color.SlateGray, Detail = $"{MonthHelper.GetShortMonth(newsData.displayDate.Month,'.')} {newsData.displayDate.Day}, {newsData.displayDate.Year}", DetailColor=Color.DarkGray });
                }

                NewsListing.ItemsSource = simpleNews;

简单的XAML:

<ScrollView>
    <ListView x:Name="NewsListing"></ListView>
</ScrollView>

输出是一个ListView,它说Xamarin.Forms.TextCell 27次......

1 个答案:

答案 0 :(得分:1)

通过创建IEnumerable并将其分配给ItemSource来绑定列表,并使用模板指定要显示的数据中的哪些属性。

public class Data {
  public string Primary { get; set; }
  public string Secondary { get; set; }
}

// in your page's OnAppearing
listView.ItemsSource = new List<Data>() { // initialize your list // };

// XAML
<ListView x:Name="listView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding Primary}" DetailText="{Binding Secondary}">
        <DataTemplate>
    </ListView.ItemTemplate>
</ListView>