【发布时间】:2017-01-10 00:05:54
【问题描述】:
我是 WPF 新手。据我了解,数据绑定控件会在源数据更改时自动更新。为什么有人会通过数据而不是直接操作来更改 UI?我的意思是,如果我想更改 Label 的文本,为什么我会选择更改其绑定数据而不是直接更改其 Text 属性?
那么你可能会问我为什么首先将它绑定到数据源。但它似乎是使用来自服务器的数据实例化 XAML 模板的唯一解决方案。这样,我不必在后面的代码中编写命令式代码来进行视图的初始渲染。但是当我想更新它时,无论如何我都必须通过代码来完成,即使我使用数据绑定。
所以问题基本上是,为什么要改变视图模型而不是改变视图本身?
【问题讨论】:
-
因为当您可以将“模型”代码与 UI 代码分开时,一切都会减少很多。当我在多年的 MFC 和 winforms 之后第一次看到它时,这对我来说是显而易见的。我唱哈利路亚。这样的解脱。
-
@EdPlunkett 我完全同意将业务模型与 UI 代码分开,但无论如何我们都在更新视图模型。我其实理解一次性绑定的好处,也就是在页面初始化阶段绑定视图模型。但是在更新视图时,我无法理解更改视图模型而不是视图本身的好处。
-
许多非常有经验和非常聪明的专业人士都看到了它的深刻价值。当然,LISP 也是如此——但这就是为什么我不讨论 LISP 的价值的原因。如果我有时间学习它,我可能会看到它们的价值。不过,我在 tcl 画了一条线。呃。
-
为什么这么多反对票..这个问题似乎很合理。