【发布时间】:2019-08-08 16:09:07
【问题描述】:
我有一个应用程序,我将用户控件用作应用程序的“页面”。我在主窗口的ApplicationViewModel 中有一个currentpage 绑定,我通过更改currentpage 的绑定以及附加到侧面菜单控件的命令在页面之间导航。我正在使用 MVVM 模式,并且我的所有 ViewModel 都派生自 BaseViewModel 类。
导航可以正常工作,但是当我在文本框中输入文本,然后导航离开然后返回时,用户输入的文本会重置为其默认绑定。
我已经尝试更新源触发器并将模式设置为双向。我的“页面”有一个绑定到的视图模型,否则可以工作。
在我的页面上,在父网格中所有控件都在:
DataContext="{x:Static core:MyPageViewModel.Instance}">
还有控制:
<TextBox Text="{Binding TextBoxTest, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
在我的视图模型中:
public static MyPageViewModel Instance => new MyPageViewModel();
public string TextBoxTest { get; set; } = "Change Me!";
我希望在导航离开然后返回页面时保留输入的值。我认为这是因为当我离开我的用户控件时,我正在卸载它,而当我返回时,我得到了一个新的视图模型实例。我只是不知道如何在内存中保留一个。
【问题讨论】:
标签: c# wpf navigation viewmodel