【发布时间】:2012-11-05 04:25:29
【问题描述】:
对于我的 WPF 应用程序,我创建了几个 UserControls,每个都有自己的 ViewModel。 ViewModels 都基于包含变量“_context”的PageViewModelBase。
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 并为主上下文中的各个字段提供值。
但是我遇到的问题是,每当我从 childView1 切换到 childView2 时,我绑定到 TextBox.Text 的字段会重置为“”。我不确定这是由于我的 MMI 代码,还是应用程序中有超过 1 个 _masterContext 实例,即我上面的方法没有按应有的方式执行。
可能是什么原因造成的?
【问题讨论】: