Poté je ViewModel, který jako atribut své ObservableCollection vrací právě výsledek metody GetAll z servisní vrstvy.
Nyní mi není úplně jasné, jak se tedy řeší filtrování. Našel jsem na nejrůznějších zdrojích, že filtrování probíhá až ve ViewModelu, což se mi teda nepozdává. Nedokáži si představit, že například značné množství dat musím neustále udržovat v operační paměti, když můžu filtrovat již na úrovni servisní vrstvy (která zavolá filtrování nad repozitářem) a aktuálně nepotřebná data se tak vůbec nebudou načítat. Ale také si neumím představit stav, jak udělat, aby se dala použít metoda GetByFilter (s tím, aby zůstaly váhody použití observable kolekce).
Díky za radu, případně odkaz a vůbec za jakékoliv nasměrování správným směrem.
#1marpit
Pro male mnozstvi dat (v pameti) muzes pouzit ICollectionView a volat refresh rucne, kdy to bude treba.
Pro vetsi mnozstvi dat (z DB) budes muset filtrovat uz SQL a nactena data dostat zpatky do te dane kolekce. Tady stoji za zminku, ze uz to nemusi byt ObservableCollection (pouze pokud je to zadouci). Az tu kolekci vytvoris/upravis zavolas NotifyPropertyChanged.
Pozor na to, ze binding u kontrolek (v XAML) nema vzdycky stejne defaultni hodnoty. Osobne jsem vzdycky radeji rucne psal - "{Binding MyProp, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Můžu se ještě zeptat, jak propojit View s ViewModelem, co se týče toho filtru? Filtr je implementovaný jako třída s bezparametrickým konstruktorem s jednotlivými get/set atributy, podle kterých se bude filtrovat.