Pracuję nad utworzeniem klasy modelu widoku podstawowego. ViewModelBase jest klasą abstrakcyjną i chcę zdefiniować właściwości, które mają zostać zaimplementowane przez wszystkie pozostałe modele pochodnych widoków.Podstawowa klasa modelu MVVM klasy
Jedną z właściwości jest ObservableCollection:
public abstract ObservableCollection<???> Items { get; set; }
Klasy, które wywodzą się z tej klasy podstawowej będą miały różne rodzaje przedmiotów zdefiniowana (ObservableCollection<Person>
, ObservableCollection<Car>
).
Jeśli ustawię typ ObservableCollection na object
w ViewModelBase, wymagałoby to ode mnie wykonania wielu różnych rzutowania w klasach pochodnych, aby działał.
Czy to właściwe podejście?
Dzięki za to. Nie mogę uwierzyć, że zupełnie zapomniałem o generykach. Powodem, dla którego robię to w ten sposób, jest to, że wiele z moich modeli widoków jest prawie identycznych, z wyjątkiem kilku drobnych różnic, więc chciałem umieścić typowe rzeczy w klasie bazowej. – Flack