![]() |
1
3
它使单元测试和/或TDD更容易。通过使用MVVM和命令,我基本上可以构建我的视图模型和命令TDD样式,并测试大多数视图逻辑,而实际上根本没有XAML视图。 |
![]() |
2
5
我想说的是,那些希望代码背后“尽可能免费”的人是那些没有真正理解MVVM潮流的人(要么你误解了他们的观点)。
命令至少提供了两个事件处理程序没有的功能。一些WPF控件知道命令的CanExecute属性,因此例如,当命令不可执行时,可以禁用按钮。设计器和绑定框架也支持命令。 你只需要在一个按钮上调用一个方法 不 使用命令而不是仅仅从事件处理程序调用方法的巨大优势。所以不要害怕使用这种方法(第三种方法是使用Blend(4)中的CallMethodAction,它更倾向于设计师而不是程序员。 |
![]() |
3
1
可测试性 . 除非为ViewModel构建一个单元测试,否则ViewModel交付的很少,这反过来意味着您需要以这样一种方式创建ViewModel,即您可以使用依赖注入、IoC、blah、blah等技术对其进行单元测试。
我不一定推荐它,正确地做它需要相当多的设计努力和前瞻性。因此,建立这种方法的成本相当高,然而,提高质量所节省的成本很可能抵消这些成本。 |
![]() |
4
1
我看到的命令的主要优点是当您有执行一个操作的双重需求时 和 验证操作是否可以执行(即上下文)。换句话说,如果你只是简单地用一个直接的方法调用链接点击,我同意,我也看不到任何好处。但是,如果应该限制单击,并且根据上下文禁用按钮,那么绑定通过CanExecute属性促进这一点。 这样,我们就不必担心视图中的控件(即逻辑上说“查找此控件,并将其设置为禁用,因为我们现在无法执行它”),我们可以创建一个命令并确保can execute返回false。这是独立于视图的可测试的,一旦绑定了它,绑定本身就负责管理控件的enabled属性。 |
![]() |
Barta · WPF MVVM不更新视图 6 月前 |
![]() |
Denis Ivanov · WPF控件在属性更改时不会更新 6 月前 |
![]() |
KrzysiekYESS · 不知道如何绑定MVVM 1 年前 |
![]() |
jason.kaisersmith · 无法通过绑定禁用条目 1 年前 |