【问题标题】:Bound Value gets reset to the empty string绑定值被重置为空字符串
【发布时间】:2012-11-05 04:25:29
【问题描述】:

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

可能是什么原因造成的?

【问题讨论】:

    标签: wpf mvvm binding


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-12-30
      • 2020-11-16
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      相关资源
      最近更新 更多