有一个更改DB中布尔值的查询。
private void optFavorit_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
var opt_query = (from q in db.TableBarcode where q.IdBarcode == selectedItem select q).First();
Database.Barcode currentBarcode = new Database.Barcode();
if (opt_query.Favorit == true)
{
currentBarcode.Update(selectedItem, false, opt_query.Scanned, opt_query.Titel, opt_query.Inhalt);
optFavorit.Content = "Fav. adden";
}
else if (opt_query.Favorit == false)
{
currentBarcode.Update(selectedItem, true, opt_query.Scanned, opt_query.Titel, opt_query.Inhalt);
optFavorit.Content = "Fav. entf.";
}
}
它有效,显示正确的结果&在每个其他页面上更新除了我执行查询的XAML页面之外。此外,如果我返回到我执行查询的页面,它将不允许我再次更改该值。
好像是内存问题。如果我重新启动完整的应用程序,正确的结果也显示在我执行查询的页面上,但我再次只能执行每个对象1x的查询,从这里开始我再次在循环中捕获。
有什么想法吗?非常感谢帮助。
编辑:
即使我不明白什么是最重要的区别,好吧也找到了解决方案。
private void optFavorit_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
// Komischer weise sind 2 Abfragen nötig! Nicht opt_query.Favorit im if verwenden!
var opt_query = (from q in db.TableBarcode where q.IdBarcode == selectedItem select q).First();
var isFavo = (from q in db.TableBarcode where q.IdBarcode == selectedItem select q.Favorit).First();
Database.Barcode currentBarcode = new Database.Barcode();
if (isFavo == true)
{
currentBarcode.Update(selectedItem, false, opt_query.Scanned, opt_query.Titel, opt_query.Inhalt);
}
else if (isFavo == false)
{
currentBarcode.Update(selectedItem, true, opt_query.Scanned, opt_query.Titel, opt_query.Inhalt);
}
}
也许有人可以解释我但至少它现在有效:)