Du lädst in dem ViewModel, über die DB Schnittstelle ( Service o.ä. ) die Daten in eine Liste.
Diese "verfrachtest" du dann in die Listen für die jeweiligen CB's.
Dabei kannst du natürlich alles rausfiltern was du meinst.
Du hast das mit Sqlite-Net anscheinend überhaupt nicht erlesen und probierst einfach so ins blaue herum.
Das QueryAsync liefert dir eine List<Person>, wobei in den objecten in deinem Fall nur der Vorname gesetzt ist.
Ganz abgesehen davon das du [Artikelserie] SQL: Parameter von Befehlen nicht beachtest, ist es doch recht einfach, wenn du mal die Doku lesen würdest.
public async Task<Person> GetVornameAsync(int id)
{
var person = await _database.Table<Person>.Where(p=>p.ID==id).FirstOrDefault();
return person;
}
private async void LoginButton(object sender, EventArgs e)
{
var person = await App.Database.GetVornameAsync(200);
if(person!= null)
{
_ = DisplayAlert("Info", person.Vorname, "OK");
}
else
{
_ = DisplayAlert("Info", "ID not found", "OK");
}
}
Wie in dem anderen Thread schon gesagt, statt irgendwas zu programmieren und dann fragen zu stellen,
sag was du erreichen willst, nicht wie du es machen willst.
Und mach nicht einfach einen neuen Thread auf, nur weil dir die Antworten im anderen nicht gefallen.
Und hör auf wild zu probieren, lies dir die Grundlagen durch. Asynchrone Programmierung in C#
Das gilt für alles.
Einfach irgendwelchen Code zu kopieren ohne die Grundlagen zu beherrschen
bringt nur Frust auf deiner und unserer Seite
Wenn du dir das 3 Schichten Model anschaust, siehst du das es neben
dem View noch die Logik- und die Datenschicht gibt.
MVVM als gesamtes ist lediglich die View Schicht. Es ist also nur das, was man für die Ansicht und Bearbeitung der visuellen Daten benötigt.
Die Logik ( z.b. durch Services ) und die Datenhaltung sind da nicht "drin" enthalten.
Wenn du das alles richtig trennst, kannst du die komplette Anwendung durch Unittests "simulieren"/Testen, ohne auch nur ein Fenster öffnen zu müssen.
Und Model ist wirklich nur ein Datenmodel.
Sobald du Berechnungen machst ( ausser mal ein x+y ) oder Daten holst, dann ist das kein Model, sondern ein Service.
Unter .NET Framework war das meiste schon vorinstalliert.
Bei NET5 ( oder Core ) ist nur die Runtime und das wichtigste vorinstalliert.
Die meisten DLL's werden aber ins Programmverzeichnis copiert.
Aber du kannst im normalfall auch mit NET5 eine single exe erzeugen.
1. Warum 1 Command mit verschiedenen Parametern?
Das sind meist Einzeiler und lassen sich durch 2. besser managen. Kannst ja das UpdateView() weiterhin aufrufen
2. Ein RelayCommand erlaubt auch ein Can..., da machst du dann die Abfrage der Bedingungen.
Nein musst du nicht, und deine Recherchen waren wohl auch von falschen Angaben gekrönt.
Wenn du per Nuget entweder System.Data.SQLite oder Microsoft.Data.SQLite installierst hast du im Namespace auch einen SQLiteDataAdapter
Ganz abgesehen davon, nein, wenn du Klassen und einen ORM benutzt erstellst du eine Liste mit allen Daten der Abfrage, nicht mehrere listen
Sowohl für NUnut und auch XUnit gibt es kostenlose "Runner", die die Test Infrastruktur innerhalb von Visual Studio benutzen.
Du kannst dann z.b. einfach einen Breakpoint in einen Test setzen, rechtsclick, "Debug Test(s)" durchsteppen.
Die werden einfach per Nuget installiert.