对于我的 WPF 应用程序,我创建了几个UserControls
,每个都有自己的ViewModel。ViewModel都是基于一个包含PageViewModelBase
变量“ _context ”的。
UserControls
它们在具有自己的 WizardViewModel 的向导对话框中显示为页面。WizardViewModel具有_masterContext
通过其构造函数传递给各个子 ViewModel 的变量。例如,
Child1ViewModel vm = new Child1ViewModel(_masterContext);
和 Child1ViewModel 的构造函数:
public Child1ViewModel(Context context) : base(context)
和 PageViewModelBase :
protected PageViewModelBase(Context context)
{
_context = context;
}
我的意图是只有 1 个 _masterContext,可以通过每个 ChildViewModel 访问。每个子视图都可以绑定到 this 并为主上下文中的各个字段提供值。
但是,我遇到的问题是,TextBox.Text
每当我从 childView1 切换到 childView2 时,我绑定的字段就会重置为“”。我不确定这是由于我的 MMI 代码,还是应用程序中有超过 1 个 _masterContext 实例,即我上面的方法没有按应有的方式执行。
这可能是什么原因造成的?