c# - UWP - 在特定条件下在列表视图中显示数据库
问题描述
我有一个名为“Tryout.sqlite”的数据库。我想在列表视图中显示 sqlite。如果用户点击“kelas 7”,那么列表视图中显示的只有“kelas 7”问题。数据库:
代码:
string path;
SQLite.Net.SQLiteConnection conn;
List<DBName> DB_TryoutList = new List<DBName>();
kelasDetail = e.ClickedItem as Kelas;
path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Tryout.sqlite");
conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);
if (kelasDetail.KelasList == "Kelas 7")
{
DB_TryoutList.Clear();
var query = conn.Table<DBName>();
string name = "";
foreach (var message in query)
{
if (message.Judul.ToLower().Contains("kelas 7 -") || message.Judul.ToLower().Contains("kelas 7-"))
{
name = message.Judul;
this.DB_TryoutList.Add(new DBName { ID = message.ID, Judul = name, Deskripsi = message.Deskripsi, Durasi = message.Durasi, JumlahSoal = message.JumlahSoal, Syarat = message.Syarat });
}
}
}
else if (kelasDetail.KelasList == "Kelas 9")
{
DB_TryoutList.Clear();
var query = conn.Table<DBName>();
string name = "";
foreach (var message in query)
{
if (message.Judul.ToLower().Contains("kelas 9 -") || message.Judul.ToLower().Contains("kelas 9-"))
{
name = message.Judul;
this.DB_TryoutList.Add(new DBName { ID = message.ID, Judul = name, Deskripsi = message.Deskripsi, Durasi = message.Durasi, JumlahSoal = message.JumlahSoal, Syarat = message.Syarat });
}
}
}
if (DB_TryoutList.Count > 0)
{
ListTryout.Visibility = Visibility.Visible;
this.ListTryout.ItemsSource = DB_TryoutList;
}
我有一个问题,当我点击“kelas 7”时,显示的问题是“kelas 7”,然后我点击“kelas 9”,问题仍然显示在“kelas 7”中(如下图) 如何处理?
解决方案
我认为问题在于您使用的是 aList<DBName>
而不是ObservableCollection<DBName>
. 当用户单击时,您会在列表Clear
中Add
添加新项目,但是由于ListView
已经绑定到同一个实例,因此将其分配给ItemsSource
是无操作的。要解决此问题,您要么必须切换到 using ObservableCollection<DBName>
,ListView
否则将收到有关集合中任何更改的通知,或者您必须List<DBName>
在每次单击后使用新实例。
推荐阅读
- php - 如何仅选择文件夹中的 jpg 文件并在 html 上显示
- visual-studio - Windows 8 上的 Visual Studio 2015 社区设置失败
- silverlight - 在 Silverlight 之类的 Web 浏览器上运行 UWP?
- angular - 当我尝试创建项目并运行 Angular 6 时,出现错误
- ios - XCODE - 在项目编辑器中为“调试”构建配置选择配置文件
- java - 更改/增加方法内的while循环条件的值 - 好或坏 -
- java - Liferay 7:如何在 Liferay 7 中创建自定义电子邮件模板?
- mysql - MYSQL 8.0 SELECT COUNT * 查询有什么问题?
- php - 带有 JSON 主体的 HTTP GET 请求是否有大小限制?
- javascript - 按下 alt 键时 Chrome 不调度 click/dblclick 事件