sobota, 24 listopada 2012

WPF: Data binding directly to a store query...

Korzystając  z DbContext i bindując bezpośrednio do wyniku zapytania, które zwraca IEnumerable<T>, otrzymywałem następujący błąd:



'Set property 'System.Windows.Controls.ItemsControl.ItemsSource' threw an exception.' Line number '54' and line position '45'.

Rozwijając InnerException można się dodatkowo dowiedzieć iż:

Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList().

Rozwiązanie problemu jest dosyć proste - należy dane przed zbindowaniem do kontrolki pobrać z bazy danych, czyli np. użyć metod:
  • ToList
  • ToArray
Ponowne uruchomienie programu już nie spowoduje tego błędu.

Brak komentarzy:

Prześlij komentarz