UWP 数据绑定与 EF7 (EF Core)

UWP Data Binding with EF7 (EF Core)

我编写了一个简单的 Windows 10 UWP 应用程序,它向用户显示通过 EF7 绑定到 SQLite 数据库的数据列表视图。我从 Microsoft 通用 Windows 平台网站入门中获取了很多起始代码。

绑定是在这样的 ViewModel 中完成的:

using (var db = new ArtistContext())
{
    lstArtists.ItemsSource = db.Artists.ToList();
}

这适用于显示数据库 table。

然后我有第二个页面(在第一个页面上显示为模态对话框),它允许用户向数据库添加记录 table。这工作正常,我可以看到记录已添加到数据库中。

但是,一旦用户关闭对话框,我就无法更新原始视图以显示数据库中的更改。我从 WPF 开发中了解到,ListView 的数据绑定实际上应该是 ObservableCollection 而不是 table 中的 ToList()。但是,关于如何将来自数据上下文的 DBSet 转换为 ObservableCollection,以及如何确保 UI 在将新记录添加到通过第二个视图的数据库。

是否有某处的示例实施,或者有人可以提供基础知识来指导我正确的方向吗?

首先,lstArtists 键入 ObservableCollection,其中 T 是您的模型。

无论何时对数据库进行更改,都必须触发全局范围事件,方法有很多,但我使用 MVVM Light 的 Messenger。在事件处理程序中,您更改 lstArtists 以使其与数据库同步。

请记住,您必须将 ListView 的 ItemsSource 属性 绑定到 public 属性 名称 lstArtists