对于我的WPF应用程序,我创建了几个UserControls
,每个PageViewModelBase
都有自己的 ViewModel 。 ViewModels 都基于UserControls
,其中包含变量“ _context ”。
_masterContext
在向导对话框中显示为页面,该对话框有自己的 WizardViewModel 。 WizardViewModel 具有变量Child1ViewModel vm = new Child1ViewModel(_masterContext);
,它通过其构造函数传递给相应的子ViewModels。例如,
public Child1ViewModel(Context context) : base(context)
和Child1ViewModel的构造函数:
protected PageViewModelBase(Context context)
{
_context = context;
}
和PageViewModelBase:
TextBox.Text
我的意图是只有1个_masterContext ,可以通过每个ChildViewModel访问。并且每个子视图都可以绑定到此视图,并为主上下文中的各个字段提供值。
然而,每当我从childView1切换到childView2时,我遇到的问题是我绑定到{{1}}的字段会重置为“”。我不确定这是由于我的MMI代码,还是在应用程序中有超过1个_masterContext实例,即我上面的方法没有按预期进行。
可能导致此问题的原因是什么?
答案 0 :(得分:0)
管理找到重置值的罪魁祸首。我实现了一个行为来处理TextBox的TextChanged事件。以某种方式与Binding结合使用会导致值被重置。一旦我拿走了它,绑定工作正常。
由于我的知识有限,我无法解释原因。但是感谢您的所有时间。