1

我已經寫了一個簡單的Windows 10 UWP應用程序,向用戶顯示通過EF7綁定到SQLite數據庫的ListView數據。我從通用Windows平臺上的Microsoft入門網站獲取了許多開始代碼。UFP與EF7數據綁定(EF核心)

結合在一個ViewModel做過這樣的:

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

也能正常工作,用於顯示數據庫表。

然後我有第二個頁面(第一個顯示爲模式對話框),它允許用戶添加記錄到數據庫表。這工作正常,我可以看到記錄被添加到數據庫。

但是,一旦用戶關閉對話框,我無法獲取原始視圖來更新以顯示數據庫中的更改。我從WPF開發人員那裏知道,ListView的數據綁定實際上應該是ObservableCollection而不是ToList()。但是,如何將來自數據上下文的DBSet轉換爲ObservableCollection,以及如何在通過第二個數據將新記錄添加到數據庫時確保向UI通知該集合發生了更改視圖。

在那裏有一個示例實現,或有人提供的基本知識指向我在正確的方向嗎?

+0

您可以發佈您的XAML綁定代碼? – SeeuD1

回答

1

首先,使lstArtists類型ObservableCollection其中T是您的模型。

每當您對數據庫進行更改時,必須激發全局範圍事件,但有許多方法,但我使用MVVM Light中的Messenger。在事件處理程序中,您更改爲lstArtists以使其與數據庫同步。

請記住,你必須給ListView的thte ItemsSource屬性綁定到公共屬性名lstArtists

+0

謝謝,我完全忘記了MVVM Light Messenger。已經將它添加到解決方案中,現在一切正常。 –