Я работаю над проектом WPF и новее, я использую шаблон MVVM в своем проекте.
У меня есть MainWindows, который вызывает пользовательские элементы управления, и у меня есть MainWindowsModel, которая помогает мне создать экземпляр, сохранить их в переменной для открытия в моем MainWindows...
Мои проблемы возникают здесь, когда я использую меню своего окна (посмотрите фотографии ниже), пользовательский элемент управления обновляется, как создание нового экземпляра...
Я создаю репозиторий, в котором имитирую свою проблему, пытаюсь написать в текстовом поле, а затем нажимаю другое нижнее меню, затем возвращаюсь к кнопке «до», вы не сможете просмотреть сообщение, которое вы там написали.
Надеюсь, что кто-то поможет мне в этом, потому что я понятия не имею, как управлять пользовательским контролем, просто создавая один экземпляр и не сохраняя данные при переключении между пользовательскими элементами управления.
Посмотрите на картинку, если я плохо объяснил
Репо для этого вопроса с интерфейсом на фото: Нажмите здесь, чтобы открыть репозиторий
Я искал примеры в другом посте, но не нашел способа, чтобы моя информация оставалась в моем UserControl. Я буду активен в этом вопросе...
У меня такая же идея, но это не решило мою проблему, я обновил репозиторий.
Информация не должна «остаться в 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)); }
}
}
В модели основного представления не создавайте новую модель представления клиента и дома каждый раз, когда вы нажимаете кнопку меню, просто создайте один экземпляр в конструкторе, а затем назначьте его текущему представлению
CurrentChildView = _homeViewModel