我在 MainPage 和 details 页面之间导航时遇到问题。
在主页上,代码如下所示:
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
State.Clear();
List<Level> lst = new List<Level>();
using (SqliteCommand selectCmd = Constants.conn.CreateCommand())
{
Constants.conn.Open();
selectCmd.Transaction = Constants.conn.BeginTransaction();
selectCmd.CommandText = " SELECT * FROM Levels";
using (SqliteDataReader reader = selectCmd.ExecuteReader())
{
while (reader.Read())
{
Level lev = new Level();
lev.ID = Convert.ToInt32(reader.GetValue(0));
lev.Name = reader.GetValue(1).ToString();
lev.levelScore = Convert.ToInt32(reader.GetValue(2));
lst.Add(lev);
}
}
selectCmd.Transaction.Connection.Close();
}
Constants.conn.Close();
levelList.ItemsSource = lst;
}
它设置页面上的项目。我在详细信息页面上导航。当我导航回 MainPage 时,问题就来了……虽然 State 是 Clear 并且 levelItems 是 0 它呈现了页面的前一个视图,并且当它尝试访问 sqlConnection 时会抛出异常。