Я пишу довольно большое приложение WPF, которое следует за структурой MVVM. Я хотел бы запустить свой интерфейс в основном в двух режимах. Первый - обычный рабочий день. Второй - это тот, о котором мне было интересно некоторое время ... Я хотел бы иметь возможность запускать его в режиме «настройки», когда пользователь будет видеть интерфейс более или менее таким же образом, как обычный , за исключением того, что всплывающее окно появляется, когда они навешивают (или могут щелкнуть) элемент управления. Это всплывающее окно позволит пользователю изменять определенные привязки, связанные с этим элементом управления. Я не хочу раскрывать каждое свойство (или каждый элемент управления).WPF MVVM: привязки к развязке и динамические настройки привязок
Например: Существует текстовый блок, который имеет привязку к сигналу давления, теперь, когда пользователь хочет изменить эту привязку к сигналу температуры. Они могут запускать пользовательский интерфейс в режиме конфигурации, перейти к экрану с помощью TextBlock, выбрать его и просмотреть свойство «Текст» во всплывающем окне, которое затем они могут изменить на новый временный сигнал. Это упрощенный экзамен, но в основном то, что я ищу.
Возможно ли это? Помните, что пользовательский интерфейс должен был бы записываться в представление (XAML). Любая помощь приветствуется.
P.S. Это была бы очень полезная, но редко используемая функция. Было бы хорошо, если бы у вас было 2 проекта, которые устанавливают один и тот же вид, но разные ViewModels и Models ... по крайней мере, это то, о чем я думал, может понадобиться. Даже если пользовательский интерфейс обычного режима должен быть перекомпилирован после использования пользовательского интерфейса режима конфигурации.
Обращайтесь с этим на уровне ViewModel, вместо того чтобы пытаться взломать интерфейс для этого. Вам нужно абстрагировать свои представления и создать модельное представление этих «виджетов». Пользовательский интерфейс не может сохраняться (например, в базе данных). Поэтому вам нужно что-то еще. –
Вы говорите, что хотите изменить привязку, чтобы она была постоянно привязана к чему-то еще? – Daniel
В противном случае ваши файлы XAML будут развернуты вместе с приложением (вместо компиляции) и загрузите их во время выполнения с помощью 'XamlReader.Load()' или что-то еще, затем вы можете изменить файлы XAML (на диске). –