MVVM, Entity i Databinding

MVVM, Entity i Databinding
onliner10
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 12 lat
0

Witam!
Próbuję napisać prostą aplikację przy użyciu MVVM i EF, jednak nie mam pojęcia, jak mógłbym zbindować DataGrid'a tak, aby rekordy wskakiwały mi "na żywo". Kod aplikacji (zip - projekt Visual Studio 2012):
http://sdrv.ms/PMiAIQ
Jako, że jeszcze raczkuję, będe wdzięczny za wszelkie sugestie i uwagi. Z góry dziękuję za udzieloną pomoc.

kociol21
  • Rejestracja:ponad 14 lat
  • Ostatnio:8 miesięcy
  • Postów:46
0

Zamień w swoim ViewModelu kolekcję People z listy na ObservableCollection<Person> i powinno śmigać. Dodatkowo, jeśli chcesz mieć możliwość wygodnego filtrowania danych to obuduj People w coś takiego:

Kopiuj
var PeopleView = CollectionViewSource.GetDefaultView(People);

i binduj datagrida do tego.


"Prawdziwa głupota zawsze pokona sztuczną inteligencję."
edytowany 1x, ostatnio: kociol21
onliner10
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 12 lat
0
Kopiuj
public ObservableCollection<Person> osoby = new ObservableCollection<Person>(DBContext.People.ToList());
 

To niestety nie działa :(

kociol21
  • Rejestracja:ponad 14 lat
  • Ostatnio:8 miesięcy
  • Postów:46
0
onliner10 napisał(a):
Kopiuj
public ObservableCollection<Person> osoby = new ObservableCollection<Person>(DBContext.People.ToList());
 

To niestety nie działa :(

Powinno być tak z tego co pamiętam. Teraz nie mam jak sprawdzić bo w robocie jestem :)

Kopiuj
public ObservableCollection<Person> osoby = new ObservableCollection<Person>(DBContext.People.Local);
</del>

EDIT:
Inaczej, local zwraca od razu ObservableCollection więc będzie tak:

Kopiuj
public ObservableCollection<Person> osoby = DBContext.People.Local;

"Prawdziwa głupota zawsze pokona sztuczną inteligencję."
edytowany 1x, ostatnio: kociol21

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.