c# - 命令(ICommand)和点击事件的区别

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

什么时候应该使用 Command 什么时候使用 Click 事件?

如果我的 UWP 应用程序中有一个 Button,我应该使用什么?

最佳答案

When should I use the Command and when to use the Click event?

你的问题很宽泛,我会简单地回答:“It depends”。 因为:

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

当然,您可以使用任何您想要的,我的观点只是为了让您深入了解这些不同的实现方式,您必须考虑哪种解决方案适合您,还要考虑您的要求(例如:“不要使用事件处理程序”或“命令太高级,让我们使用一些简单的东西”等)和/或项目中的其他约束。

关于c# - 命令(ICommand)和点击事件的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39556197/

相关文章:

c# - SQL Compact 不能与 Linq to Sql 一起使用,我应该使用什么?

c# - NET5.0 Blazor WASM CORS 客户端异常

c# - 具有混合对象类型的嵌套 XAML TreeView 结构

c# - 如何在上传前选择图片并裁剪?

c# - BitmapImage 或 ImageStream 到图像文件 - Windows 10

c# - 如何修改另一个窗口的背景颜色?

javascript - 当我只告诉它调用一个函数时,Blazor 服务器应用程序中的 JSRuntime.InvokeVoidAsync 调用多个函数

c# - 在用户控件 WPF 中使用数据模板选择器时抛出空引用异常

xaml - 空列表的列表框项目模板

c# - 你如何计算字符串的像素大小?