0

メディア プレーヤーを制御するビュー モデルがあるとします。スター、停止、一時停止、再開などの標準的な制御機能を提供する必要があります。

ビューモデルで設計する2つの方法を考えています

第 1 の方法: すべてのアクションには独自のコマンドがあります。- StartCommand - StopCommand - PauseCommand - ResumeCommand

ビュー内のすべてのボタンは、関連するコマンドにバインドされます。

第 2 の方法: 異なるコマンド パラメータを持つ 1 つのコマンド。PerformActionCommand と次のような列挙

enum ActionEnum
{
  start, 
  stop,
  pause,
  resume
}

どの方法が好ましいと思いますか?また、その理由は何ですか?

4

2 に答える 2

1

この場合、別のコマンドを使用する方が適切です。コマンドはあまり似ていないため、1 つのコマンド ハンドラーがある場合は、内部で大きな switch ステートメントを使用し、おそらく別のメソッドを呼び出す必要があります。

もう 1 つの理由は、さまざまなコマンドを使用すると、それらのコマンドが有効になっているかどうかで、さまざまな条件を簡単に設定できることです。たとえば、再開はプレーヤーが一時停止しているときにのみ有効になります。

于 2012-09-24T11:19:42.300 に答える
0

Jogy の記述に加えて、別のコマンドも使用します。このようにして、組み込みのwpf メディア コマンドも使用できます。

これにはいくつかの潜在的な利点があります。

  • 既に WPF 内にあるため、コマンドごとにICommandを実装するクラスを記述する必要はありません。

  • 各メディア コマンドは実際にはRoutedUICommand です。つまり、ボタンのコンテンツとして使用できるテキスト プロパティがあります。

  • 一部のコマンドでは、組み込みの入力ジェスチャを利用できます。
于 2012-09-24T11:45:56.747 に答える