Command(ICommand)和Click事件之间的区别

时间:2016-09-18 09:38:24

标签: c# xaml win-universal-app uwp windows-10-universal

我应该何时使用Command以及何时使用Click事件?

F.e。如果我的UWP应用程序中有Button我应该使用什么?

1 个答案:

答案 0 :(得分:12)

  

我何时应该使用Command以及何时使用Click事件?

你的问题很广泛,我只想回答:" 取决于"。 这是因为:

  • Command实现了ICommand界面,这意味着需要添加更多代码才能添加到您的应用中,但这通常不会发生变化。相反,事件处理程序不需要任何接口实现。
  • 对于您想要的每个命令,您必须提供将处理单击和CanExecute逻辑的代码,以说明命令何时可以执行。这不是在简单的事件处理程序中请求的(例如 MyButton_Click )。这意味着,使用Command,您可以更好地控制用户界面的元素(如果CanExecutefalse,则按钮不会执行任何操作。)
  • 如果要添加Command,则会将其绑定到 DataContext ViewModel ,如果实现MVVM模式)。相反,当您添加一个简单的事件处理程序(如 MyButton_Click )时,代码将被放置在代码隐藏中,这是主窗口背后的逻辑。这意味着实施Command,根据我的说法,您只需要在一个地方( ViewModel )拥有您需要修改的所有内容,而不是分散在项目中各处的逻辑。

当然,您可以使用您想要的任何内容,我的观点只是为了让您了解这些不同的实施方案,并且您必须考虑哪种解决方案适合您,同时考虑您已经给出的要求(比如:&#34;不要使用事件处理程序&#34;或者&#34;命令太高级了,让我们只使用简单的东西&#34;等等)<您的项目中的强>和/或其他约束。