Załóżmy, że mam klasę o nazwie Customer
. Teraz muszę renderować klienta na widoku. Stworzyłem więc CustomerViewModel
do użycia w wiązaniu. Szukam najlepszego sposobu tworzenia klasy CustomerViewModel
. Poniżej znajdują się moje przemyślenia na temat jego tworzenia.Najlepszy sposób tworzenia ViewModel w MVVM
1 - Utwórz ponownie wszystkie właściwości w kliencie na modelu widoku. Wstaw instancję klienta do modelu widoku, a każda właściwość zwróci wartość z tego obiektu klienta. Zaletą tej metody jest to, że mogę utworzyć wspólną klasę bazową dla wszystkich modeli widoków i porzucić tam wspólną funkcjonalność. Wadą będzie czas potrzebny do ponownego utworzenia wszystkich właściwości modelu widoku i wykonania konserwacji.
2 - Wyprowadź model widoku od klienta. Tak więc mam wszystkie modele proprech klienta w widoku. Ale to nie pozwoli mi używać wspólnej klasy bazowej i umieszczać tam logikę modelu wspólnego widoku.
Zastanawiam się więc, jaka będzie najlepsza metoda tworzenia modelu widoku? Czy są jakieś alternatywne metody, które są lepsze niż to, co myślałem?
Ile czasu zajmuje powtórzenie właściwości modelu w ViewModel? Umieszczenie w konwerterze lub wyzwalaczu do celów wyświetlania sprawia, że warte są dla mnie dodatkowe minuty. Jeśli masz złożony widok z wieloma kontrolkami, dodaj model jako właściwość w viewmodelu i połącz z Model.Property w widoku. – adrianm
Chciałbym omijać # 2. Nie sądzę, że zawsze znajdziesz wyraźne odwzorowanie między określoną klasą modelu a ViewModel.Dla łatwości obsługi chciałbym przejść z inną klasą, która mogłaby logicznie usiąść przed modelem niestandardowym, ale mogłaby również wystawić inne typy modeli w przyszłości na widok. –