Mam aplikację, która używa wzorca MVVM i chciałbym wdrożyć sprawdzanie poprawności, gdy użytkownik jest wypełnienie informacji.jest to dobry pomysł, że model widoku implementuje IDataErrorInfo do sprawdzania poprawności?
Chciałbym użyć IDataErrorInfo, ale nie wiem, czy to dobry pomysł, że mój model widoku implementuje ten interfejs, czy lepiej jest utworzyć nową klasę. Jaki jest najlepszy sposób sprawdzenia poprawności implikacji za pomocą IDataErrorInfo i wzorca MVVM?
EDYCJA: Widzę, że w niektórych przykładach implementacja jest w modelu (to nie jest to samo, co model widoku), ale w moim przypadku model jest w zasadzie jednostkami POCO, które utworzę z mojej bazy danych podczas tworzenia mój model edmx z strukturą encji, więc chciałbym uniknąć konieczności modyfikacji tych encji, ponieważ jeśli nie potrzebuję aktualizacji mojego modelu, musiałbym ponownie wykonać pracę.
Dzięki.
dobre pytanie. +1 –
Powiedziałbym, że to bardzo dobry pomysł, aby VM zaimplementowała 'IDataErrorInfo'. Ten interfejs w znacznym stopniu "pomaga" w przekazywaniu informacji do użytkownika (widok) w poszukiwaniu błędów w tle (błędy w danych). to jest dokładnie to, do czego służy VM i byłoby całkowicie ważne, aby ją tam było. [Komentarze w tej odpowiedzi] (http://stackoverflow.com/a/341832/1834662) i jeden poniżej kłóci się z posiadaniem go w Modelu. Zdefiniowanie go w innej klasie jest niż Modelem, a VM nie byłoby "złe" dla abstrakcji, ale może nie warto. – Viv
..cont'd. Jeśli to, co sprawdzasz za pomocą 'IDataErrorInfo' jest tak skomplikowaną logiką, że chciałbyś go ponownie użyć, to dosłownie przeniesie te kontrole funkcjonalne do usługi, a następnie zmusiłoby ją do wdrożenia interfejsu i do VM korzysta z usługi, aby uzyskać dostęp do skomplikowanej logiki walidacji. W ten sposób uzyskasz ponowne użycie kodu i udostępnianie, a także pozostaniesz czysty i prosty z każdą maszyną wirtualną, która sama implementuje 'IDataErrorInfo'. – Viv