繁体   English   中英

Xamarin表单ListView

[英]Xamarin forms ListView

如何在xamarin表单上对自定义Listview进行排序,说如果它具有日期和时间jason数据,您将如何进行设置,以便最新的日期显示在顶部

这是我的杰森反序列化

public class RootObject
{

    public List<Feed> Feeds { get; set; }
}

public class Channel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Latitude { get; set; }
    public string Longitude { get; set; }
    public string Field1 { get; set; }
    public DateTime Created_at { get; set; }
    public DateTime Updated_at { get; set; }
    public string Elevation { get; set; }
    public int Last_entry_id { get; set; }
}

public class Feed
{
    public DateTime Created_at { get; set; }
    public int Entry_id { get; set; }
    public string Field1 { get; set; }
}


public partial class DripPage : TabbedPage
{
    void Handle_Refreshing(object sender, System.EventArgs e)
    {
        postsListView.ItemsSource = _data;
        postsListView.EndRefresh();
    }

    private const string Url = "https://thingspeak.com/channels/301726/field/1.json";
    private HttpClient _client = new HttpClient();
    private ObservableCollection<Feed> _data;


    public DripPage()
    {
        InitializeComponent();
    }

    protected override async void OnAppearing()
    {
        var content = await _client.GetStringAsync(Url);
        var data = JsonConvert.DeserializeObject<RootObject>(content);

        _data = new ObservableCollection<Feed>(data.Feeds);
        postsListView.ItemsSource = _data;


        base.OnAppearing();
    }

    void OnAdd(object sender, System.EventArgs e)
    {
    }

    void OnUpdate(object sender, System.EventArgs e)
    {
    }

    void OnDelete(object sender, System.EventArgs e)
    {
    }
}

}

只需将dateandtime元素从最新到最旧的欢呼进行排序

使用LINQ( OrderByDescending )订购Feeds集合:

_data = new ObservableCollection<Feed>(data.Feeds.OrderByDescending(x => x.Created_at));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM