C#:WPF MVVM命令绑定与事件回调
使用MVVM进行文件->退出的关闭操作有什么意义 当您可以简单地为Click事件创建事件回调时,生成close命令似乎需要做很多工作。对于这种与数据或业务逻辑无关的东西,我不认为使用MVVM方法有什么意义。为什么不使用以下方法: xaml:C#:WPF MVVM命令绑定与事件回调,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,使用MVVM进行文件->退出的关闭操作有什么意义 当您可以简单地为Click事件创建事件回调时,生成close命令似乎需要做很多工作。对于这种与数据或业务逻辑无关的东西,我不认为使用MVVM方法有什么意义。为什么不使用以下方法: xaml: 你们完全正确——若处理程序是纯UI相关的,那个么它不会以任何方式破坏MVVM(尽管一些极端分子这么说)。MVVM是为了将UI和业务逻辑解耦而创建的模式,代码中的“UI东西”是可以的。对于这种情况,您有一点争议。如果没有其他内容,那么关闭视图很容易被理解为完全
你们完全正确——若处理程序是纯UI相关的,那个么它不会以任何方式破坏MVVM(尽管一些极端分子这么说)。MVVM是为了将UI和业务逻辑解耦而创建的模式,代码中的“UI东西”是可以的。对于这种情况,您有一点争议。如果没有其他内容,那么关闭视图很容易被理解为完全与视图相关,因此一个
单击
事件处理程序首先是有意义的。视图相关的代码出现在视图中,而不是VM中
然而,我想质疑你的观点,即命令
设置起来有那么难。使用DelegateCommand
:需要两行附加代码:
public ICommand ExitCommand {get; private set;}
public MyViewModel()
{
ExitCommand = new DelegateCommand(ExitApp);
}
无论哪种方式,处理程序都是相同的。虽然Exit
可能不需要命令,但一般来说,ICommand
是正确的方法,实际上并不难
private void Exit_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
public ICommand ExitCommand {get; private set;}
public MyViewModel()
{
ExitCommand = new DelegateCommand(ExitApp);
}