Как вызвать User Control, создав только один экземпляр с помощью MVVM в WPF?

Я работаю над проектом WPF и новее, я использую шаблон MVVM в своем проекте.

У меня есть MainWindows, который вызывает пользовательские элементы управления, и у меня есть MainWindowsModel, которая помогает мне создать экземпляр, сохранить их в переменной для открытия в моем MainWindows...

Мои проблемы возникают здесь, когда я использую меню своего окна (посмотрите фотографии ниже), пользовательский элемент управления обновляется, как создание нового экземпляра...

Я создаю репозиторий, в котором имитирую свою проблему, пытаюсь написать в текстовом поле, а затем нажимаю другое нижнее меню, затем возвращаюсь к кнопке «до», вы не сможете просмотреть сообщение, которое вы там написали.

Надеюсь, что кто-то поможет мне в этом, потому что я понятия не имею, как управлять пользовательским контролем, просто создавая один экземпляр и не сохраняя данные при переключении между пользовательскими элементами управления.

Посмотрите на картинку, если я плохо объяснил

Репо для этого вопроса с интерфейсом на фото: Нажмите здесь, чтобы открыть репозиторий

Я искал примеры в другом посте, но не нашел способа, чтобы моя информация оставалась в моем UserControl. Я буду активен в этом вопросе...

В модели основного представления не создавайте новую модель представления клиента и дома каждый раз, когда вы нажимаете кнопку меню, просто создайте один экземпляр в конструкторе, а затем назначьте его текущему представлению CurrentChildView = _homeViewModel

radoslawik 10.01.2023 17:38

У меня такая же идея, но это не решило мою проблему, я обновил репозиторий.

Joel Barrantes 10.01.2023 20:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Информация не должна «остаться в UserControl.

Вы должны привязать TextBox к свойству модели представления и сохранить там значение string. Он не будет/не должен храниться в представлении, которое выгружается.

HomeView.xaml:

<TextBox Text = "{Binding Text}"
                FontSize = "20"
                Margin = "10,10,0,0"
                Foreground = "Green"
                Width = "300"
                Height = "50"/>

ГлавнаяViewModel:

public class HomeViewModel : ViewModelBase
{
    private string _text = "Write something";
    public string Text
    {
        get { return _text; }
        set { _text = value; OnPropertyChanged(nameof(Text)); }
    }
}

Другие вопросы по теме