- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 WPF 中使用 MVVM 模型是否会限制程序员在后面编写代码?避免 Code behind 会导致很多复杂性,但另一方面,耦合会成为一个问题。那么什么更好呢?
最佳答案
MVVM 模型不会限制您在后面编写代码。
它所提倡的是 View 应该只依赖于 ViewModel(以及 Model 上的 ViewModel)
因此,如果您在其背后编写代码实际上是在实现 ViewModel,那么您就是在创建从 ViewModel 到 View 的依赖关系。
仅查看相关内容的代码是可以的
使用后面的代码时你失去的东西是该代码的简单(单元)测试。
编辑
MVVM 世界中的一个常见表达是“仅 XAML”。尽管我喜欢一个简短、活泼的陈述,但它往往会偏离 MVVM 试图解决的实际问题以及它试图解决它的方式。
只要您坚持使 View 依赖于 ViewModel 和 Model 上的 ViewModel 并努力实现(单元)可测试性,那么您就走在了正确的轨道上。
编辑 2
在处理事件的 View 中应该只做两件事:改变 View 本身或使用绑定(bind)通知 View 模型发生了变化。应通过在 ViewModel 上实现 INotifyPropertyChanged 来通知 VIEW ViewModel 中的更改。
以类似的方式,ViewModel 可以通过将 ViewModel 命令绑定(bind)到 View 来响应 View 中的事件。
WPF 按钮有一个可以使用的 Command 属性。它在单击按钮时执行。
如果控件没有 Command 属性,或者您想在引发不同事件时执行命令,您所要做的就是将事件转换为 ICommand 的执行。
Microsoft 已经在 Blend SDK 中提供了一个实现。 From this article :
... xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity..."
<Slider
<i:Interaction.Triggers>
<i:EventTrigger EventName="ValueChanged">
<i:InvokeCommandAction Command="{Binding MyCommand}"
CommandParameter="{Binding Text, ElementName=textBox}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Slider>
关于wpf - MVVM 限制代码背后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10780256/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!