将MVVM用于File-> Exit的关闭操作有什么意义呢?
当你可以简单地为Click事件创建一个事件回调时,做一个关闭命令看起来很麻烦.对于这样与数据或业务逻辑没有任何关系的东西,我没有看到使用MVVM方法的意义.为什么不使用以下内容:
XAML:
<MenuItem Header="_File" Background="WhiteSmoke">
<MenuItem Name ="Exit" Tag="Exit" Header="Exit" Click="Exit_Click"/>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
代码背后:
private void Exit_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
对于这种情况,你有一点争论.如果不出意外,关闭视图很容易被解释为完全与视图相关,因此Click事件处理程序从一开始就有意义.与视图相关的代码在视图中,而不是VM.
但是,我会挑战你的观念,Command即难以设置.使用DelegateCommand:http://wpftutorial.net/DelegateCommand.html需要两行额外的代码:
public ICommand ExitCommand {get; private set;}
public MyViewModel()
{
ExitCommand = new DelegateCommand(ExitApp);
}
Run Code Online (Sandbox Code Playgroud)
处理程序是相同的方式.虽然Exit可能不需要命令,但总的来说,这ICommand是正确的方法,实际上并不那么难.
| 归档时间: |
|
| 查看次数: |
1671 次 |
| 最近记录: |