我想知道这是否会破坏MVVM模式,如果是这样,为什么以及为什么这么糟糕呢?
WPF:
<Button Click="Button_Click" />
Run Code Online (Sandbox Code Playgroud)
代码背后:
private void Button_Click(object sender, RoutedEventArgs e)
{
ViewModel.CallMethod();
}
Run Code Online (Sandbox Code Playgroud)
查看型号:
public void CallMethod()
{
// Some code
}
Run Code Online (Sandbox Code Playgroud)
恕我直言,它使代码背后非常简单,视图模型仍然对视图和代码背后不可知,对视图的更改不会影响业务逻辑.
在我看来比Commands或更简单明了CallMethodAction.
我不想要那种答案"它不应该如何完成".我需要一个恰当而合乎逻辑的理由,说明为什么这样做会导致维护或理解问题.
BTo*_*TKD 11
不,这完全没问题.
View的工作是处理用户输入并与ViewModel交互.按钮单击事件处理程序(在调用中调用ViewModel的方法)完全属于此角色.
您发布的内容是干净,可读,高效,可维护,完全符合MVVM设计模式的精神.
现在,从更一般的意义上讲,您真正想要问的是:"为什么选择ICommands,而不是MVVM的事件处理程序?" 那么,你肯定不会是 | 该 | 第一.
| 归档时间: |
|
| 查看次数: |
2751 次 |
| 最近记录: |