Я новичок в MVVM, и я решил перейти и начать использовать его в моих будущих проектах.Переключение между режимами просмотра и режимом редактирования в MVVM?
Я прочитал этот родственный вопрос и ответ, но я не знаю, как это будет реализовано с помощью MVVM.
Я хочу, чтобы все виды в моем проекте имели 2 режима, режим редактирования и режим просмотра.
Я не хочу, чтобы пользователь по умолчанию видел TextBoxes для всех полей, я скорее хочу, чтобы они увидели TextBlocks (или установили для всех TextBoxe
s как IsReadOnly
свойство true (через стиль и т. Д. Вы мне скажите ..) .
Когда пользователь открывает объект, он обычно должен быть TextBlocks, Ярлыки (или только текстовые поля) и т. Д., И если он нажимает «Изменить» (если у него есть разрешение), он должен перейти в режим редактирования, и все метки полей должны быть инвертированы в TextBoxes (RichTextBoxes и т. д., ComboBoxes или любые другие редактируемые поля, которые не являются только метками).
Я уверен, что я не единственный, у кого есть эта проблема, я хотел бы услышать от экспертов, что является наиболее эффективным способом переключения b между этими режимами в чистом MVVM и является ли это общим объявлением для него двух отдельных представлений.
Пожалуйста, обратитесь к хорошей статье, в которой объясняется, как это сделать (возможно, это делается визуальным состоянием IDK).
UPDATE
Я хочу знать, что вместо того, КАК, на мой вопрос о шаблоне, и я должен отделить Edit Mode от View Mode либо на V или VM? Поэтому, пожалуйста, подчеркните эту деталь в своем ответе.
Заранее спасибо.
А как насчет других полей? Я сказал, что хочу, чтобы некоторые поля инвертировались в DropDown, некоторые - на слайдер, а некоторые - на сборщик дат, тогда как в режиме просмотра все они были просто текстовыми блоками/ярлыками? И это очень важная часть для меня. – Shimmy
@Shimmy - извините, я пропустил этот бит (не знаю почему). Вы можете сделать то же самое для ComboBoxes, но это может быть свойство IsEnabled, с которым вам нужно привязать. – ChrisF
Итак, вы в основном говорите, что я должен сделать общий вид для режимов редактирования/просмотра, имея все элементы управления, объявленные рядом с другим параметром, который элемент управления IsReadOnly или Visibility для IsViewMode на виртуальной машине (с использованием конвертера BooleanToVisibility для скрытия элементов управления), это так? ** Я добавил некоторое содержание к моему вопросу. ** – Shimmy