Как вызвать 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
Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP
В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS
Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и...
Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow
В быстро развивающемся мире веб-разработки ServiceNow для достижения успеха крайне важно оставаться на вершине последних тенденций и технологий. По...
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.
Конфигурация Jest в angular
Конфигурация Jest в angular
В этой статье я рассказываю обо всех необходимых шагах, которые нужно выполнить при настройке jest в angular.
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)); }
    }
}

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