Jestem nowy w firmie MVVM i zdecydowałem się przejść do niej i zacząć ją stosować w moich nadchodzących projektach.Przełączanie między trybem wyświetlania i trybem edycji w MVVM?
Przeczytałem to powiązane pytanie i odpowiedź, ale nie wiem, w jaki sposób zostałby on wdrożony w MVVM.
Chcę, aby wszystkie widoki w moim projekcie miały 2 tryby, tryb edycji i tryb widoku.
Nie chcę, aby użytkownik domyślnie widział pola TextBox dla wszystkich pól, wolałbym, aby widziały TextBlocks (lub ustawiają właściwość s 'jako IsReadOnly
na true (poprzez styl itp., Powiedz mi ..)
Gdy użytkownik otwiera encję, zwykle powinny to być TextBlocks, Labels (lub readonly TextBoxes) itd., A jeśli kliknie "Edit" (jeśli ma uprawnienia), powinien przejść do trybu edycji, a wszystkie etykiety pól powinny zostać odwrócone do pól TextBox (RichTextBoxes itp., ComboBoxes lub innych edytowalnych pól, które nie są tylko etykietami).
Jestem pewien, że nie jestem jedynym, który ma ten problem, chciałbym usłyszeć od ekspertów, jaki jest najskuteczniejszy sposób przełączania b pomiędzy tymi trybami w czystej MVVM i czy powszechne jest zadeklarowanie dla niego dwóch osobnych widoków.
Proszę odnieść się do dobrego artykułu, który wyjaśnia, jak to zrobić (może to zrobić Visual Law? IDK).
UPDATE
Chcę wiedzieć, co zamiast JAK, moje pytanie jest o strukturze i jest powinienem oddzielić tryb edycji od trybie podglądu na obu V lub VM? Proszę podkreślić ten szczegół w swojej odpowiedzi.
Z góry dziękuję.
A co z innymi polami? Powiedziałem, że chcę, aby niektóre pola były odwrócone do DropDown, niektóre do suwaka, inne do selektora daty, podczas gdy w trybie wyświetlania wszystkie są proste TextBlocks/labels? To bardzo ważna część dla mnie. – Shimmy
@Shimmy - przepraszam, tęskniłem za tym trochę (nie wiem dlaczego). Możesz zrobić to samo dla ComboBoxes, ale może to być właściwość 'IsEnabled', z którą musisz się połączyć. – ChrisF
Więc zasadniczo mówisz, że powinienem zrobić wspólny widok dla trybów edycji/widoku, mając wszystkie kontrolki zadeklarowane jeden blisko innego ustawienia IsReadOnly lub Kontrola widoczności do IsViewMode na VM (używając konwertera BooleanToVisibility dla kontrolek do ukrycia), jest to prawda? ** Dodałem trochę treści do mojego pytania. ** – Shimmy