Poruszam się po małej aplikacji sprawdzającej koncepcję. Chodzi głównie o wzmocnienie moich umiejętności MVVM w Silverlight. Natknąłem się dzisiaj na interesujący problem, że nie mogłem wymyślić sposobu rozwiązania problemu MVVM. Nie udało mi się znaleźć niczego istotnego podczas wyszukiwania.Ogólnie preferowana metoda dla ekranu "Oczekiwanie" przy użyciu MVVM i Silverlight
Więc do problemu, mam prostą aplikację typu biznes z back-end bazy danych. Mam widok logowania i dołączony model widoku, który wykona logowanie i raport zakończy się sukcesem lub niepowodzeniem. Nie ma problemu. To, z czego nie byłem jeszcze zadowolony, to sposób na zgłoszenie użytkownikowi ekranu oczekiwania. Tak więc, biorąc pod uwagę mój ekran logowania, użytkownik kliknął Login i opóźnienie trwało kilka sekund, podczas gdy czatowanie z bazą danych zostało zakończone. Chcę to zgłosić i wyłączyć wszelkie interakcje do czasu zakończenia połączenia.
Miałem kilka pomysłów. Najpierw należy powiązać właściwość Cursor z obiektem viewmodel, a maszyna wirtualna może ustawić właściwość IsBusy na wartość true. Problem z tym, że nie mogę wydawać się wiązać z Cursorem dla UserControl (Visual Studio mówi AG_E_RUNTIME_MANAGED_UNKNOWN_ERROR
).
Drugi pomysł to posiadanie ekranu oczekiwania. Wiesz, małe kółka obracają się lub jakakolwiek animacja chcesz. I to jest w porządku, ale nie jest dla mnie jasne, w jaki sposób mógłbym uczynić widok, który przełożyłby to przez model poprzez Xaml. Wiem, że mógłbym zdecydowanie podpiąć zdarzenia i poradzić sobie z tym w kodzie. Może to jest droga? Wydaje się, że jest trochę przeciwko ziarnu MVVM.
Byłby zainteresowany większością pomysłów, jak sobie z tym poradzić.
Dziękuję.
Czy mógłbyś trochę się rozwinąć? Kiedy mówisz "skończyło się używaniem usługi", nie podążam za tym. Oczywiście używam usługi wcf do obsługi procesu, SL wywołuje usługę asynchornously, czy mówisz, że istnieje inna usługa, która wywołuje usługę wcf? Bardzo podoba mi się pomysł posiadania ekranu/kodu "oczekiwania" w jednym miejscu, to jest to, o co mi chodzi. – billb