0

对于我的 WPF 应用程序,我创建了几个UserControls,每个都有自己的ViewModelViewModel都是基于一个包含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 实例,即我上面的方法没有按应有的方式执行。

这可能是什么原因造成的?

4

1 回答 1

0

设法找到重置值的罪魁祸首。我实现了一个行为来处理 TextBox 的 TextChanged 事件。不知何故,与 Binding 结合使用会导致值被重置。一旦我把它拿走,绑定工作正常。

由于我的知识有限,我无法解释原因。但感谢大家的时间。

于 2012-11-05T06:36:13.260 回答