【问题标题】:What exactly is Two-way databinding in WPF?WPF 中的双向数据绑定到底是什么?
【发布时间】:2010-05-23 16:37:41
【问题描述】:

我正在使用 MVVM 学习 WPF,作为初学者,我观看了 Jason Dolinger 在 MVVM 上的视频。他提到,将 MVVM 与 WPF 结合使用的优点之一是双向数据绑定。我的问题是他所说的双向数据绑定是什么意思? 1)将数据从控件(视图)绑定到 VM 中的属性和 2)集合或属性的任何更改都反映在视图中的能力是这样的吗?如果我错了,谁能详细解释一下它是什么以及它的优点是什么?这可能是一个非常简单的疑问,但我对 WPF 和它的术语非常陌生,现在正在远离 WinForms。

【问题讨论】:

    标签: .net wpf data-binding two-way


    【解决方案1】:

    你没有错。双向数据绑定就是这个意思。
    您将视图与其 ViewModel 连接起来,因此您在其中一个中所做的每一项更改都会反映到另一个中。
    要获得这种行为,您必须在 ViewModel 中实现接口 INotifyPropertyChange 或使用依赖属性,而不是普通的 CLR 属性。
    您还可以使用其他类型的数据绑定,例如一种方式或一种来源方式。但是,默认设置是双向的。
    希望这可以帮助。问候

    【讨论】:

    • 很高兴听到我几乎是对的。另一个问题是这是否意味着 M-V-VM 在没有 WPF 的情况下很难实现?像,WPF 和 M-V-VM 是硬耦合的?我问这个是因为,到目前为止,我还没有找到没有 WPF/SL 的 M-V-VM 实现。
    • 其实默认绑定类型取决于依赖属性。事实上,依赖属性的默认值是 OneWay,但一些 WPF 控件已将其覆盖为它们的某些属性的 TwoWay(例如 TextBox.Text)。
    • MVVM 模式实际上是开发人员学习有效利用 WPF 非常强大且无处不在的数据绑定技术的产物,因此您不太可能在任何其他上下文中遇到它。
    【解决方案2】:

    一般的想法是,不仅对 DataContext 的任何更改都会反映在 UI 中,而且对 UI 的更改也会被推送回 DataContext。

    所以你是对的:)

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 2012-11-10
      • 1970-01-01
      • 2016-03-01
      • 2010-09-24
      • 2011-07-30
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多