Creating fast, responsive and grouped Tableviews is hard. Espcially with very large data sets. Simple Database takes care of this for you by extending SQLite-net
https://www.nuget.org/packages/Clancey.SimpleDatabase/
Simple tables gives you the interface you need to populate a ListView
Database.Main.RowsInSection<T>(section);
Database.Main.NumberOfSections<T>();
Database.Main.ObjectForRow<T>(section, row);
Database.Main.SectionHeader<T>(section);
Database.Main.QuickJump<T>();
Add attributes for OrderBy and Grouping
class MyClass
{
[Indexed, PrimaryKey]
public string Id {get;set;}
//Typically this is just one letter, and the first letter of the displayed text
[GroupBy]
public virtual string IndexCharacter {get;set;}
[OrderBy]
public string Name {get;set;}
}
Sometimes you need to filter or Add dynamically compose a query. Simple Auth uses named parameters
var artist = new { Id = "Foo"};
var group = Database.Main.GetGroupInfo<Song>().Clone();
group.Filter = "ArtistId = @ArtistId";
group.Params["@ArtistId"] = artist.Id;
Database.Main.RowsInSection<Song>(group , section);
#Open Source Software This project was built on the shoulders of giants!