我想要将这些数据/详细信息从数据库填充到我的应用程序中的 ListView(在 XAML 中定义)。
首先您需要根据您的要求从数据库中查询数据。如何获取数据取决于您用于 UWP 应用的 SQLite Nuget 包。其次,您可能需要将数据读取到源集合,可能是@Ion Caisîn 所说的ObservableCollection。这里最好的做法是拥有实体,为表数据构建模型。最后将源绑定到ListView。
以下是一个关于从 SQLite 数据库读取数据并将数据绑定到ListView 的简单演示。我正在使用SQLitePCL Nuget 包。
XAML 代码:
<Button x:Name="btngetdata" Content="get data" Click="btngetdata_Click"></Button>
<ListView x:Name="ListCustomer" SelectionMode="None">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Margin="2,10,0,0" Text="{Binding Name}" />
<TextBlock Margin="2,10,0,0" Text="{Binding City}" />
<TextBlock Margin="2,10,0,0" Text="{Binding Contact}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
后面的代码:
public sealed partial class MainPage : Page
{
...
private void btngetdata_Click(object sender, RoutedEventArgs e)
{
ListCustomer.ItemsSource = SQLiteHelp.getValues();
}
}
public class SQLiteHelp
{
private static string DbName = "Sun.db";
public static ObservableCollection<Customer> getValues()
{
ObservableCollection<Customer> list = new ObservableCollection<Customer>();
using (var connection = new SQLiteConnection(DbName))
{
using (var statement = connection.Prepare(@"SELECT * FROM CUSTOMER;"))
{
while (statement.Step() == SQLiteResult.ROW)
{
list.Add(new Customer()
{
Id = Convert.ToInt32(statement[0]),
Name = (string)statement[1],
City = (string)statement[2],
Contact = statement[3].ToString()
});
Debug.WriteLine(statement[0] + " ---" + statement[1] + " ---" + statement[2] + statement[3]);
}
}
}
return list;
}
}
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
public string Contact { get; set; }
}
更多详细信息请参考this guide,它用于 UWP 中的 SQLite 本地数据库。还有一个 SQLite in UWP app sample 使用 Microsoft.Data.SQLite 包,您也可以参考。