0

假设您有一个控制媒体播放器的视图模型。它必须提供标准控制功能,如启动、停止、暂停和恢复。

我正在考虑在视图模型中设计它的两种方法

第一种方式:每个动作都有自己的命令。- StartCommand - StopCommand - PauseCommand - ResumeCommand

视图中的每个按钮都将绑定到它的相关命令。

第二种方式:具有不同命令参数的单个命令。PerformActionCommand 和一个看起来像的枚举

enum ActionEnum
{
  start, 
  stop,
  pause,
  resume
}

您认为哪种方式更可取,原因是什么?

4

2 回答 2

1

在这种情况下,使用单独的命令会更好。这些命令不是很相似,所以如果你有一个命令处理程序,你将不得不在里面使用一个大的 switch 语句并且可能调用不同的方法。

另一个原因是,使用不同的命令,您可以轻松地在启用或不启用这些命令时拥有不同的条件 - 例如,仅在播放器暂停时才启用 Resume。

于 2012-09-24T11:19:42.300 回答
0

除了 Jogy 所写的内容之外,我还会使用单独的命令。通过这种方式,您还可以使用内置的wpf 媒体命令

这有一些潜在的优势:

  • 您不需要为每个命令编写实现ICommand的类,因为它已经在 WPF 中

  • 每个媒体命令实际上是一个RoutedUICommand,这意味着它具有可以用作按钮内容的文本属性。

  • 您可以通过一些命令利用已经内置的输入手势。
于 2012-09-24T11:45:56.747 回答