2012-09-24 56 views
0

假設您有一個控制媒體播放器的視圖模型。它必須提供標準的控制功能,如Star,Stop,Pause和Resume。命令和CommandParameter設計

我正在考慮兩種方式來設計它的視圖模型

1路:每一個動作都有自己的命令。 - 啓動命令 - StopCommand - PauseCommand - RESUMECOMMAND

視圖中的每一個按鍵都將被綁定到它的相關命令。

第二種方式:一個命令參數不同的命令。 PerformActionCommand和枚舉,看起來像

enum ActionEnum 
{ 
    start, 
    stop, 
    pause, 
    resume 
} 

你覺得哪種方式最好是爲了什麼原因?

回答

1

在這種情況下使用單獨的命令更好。這些命令不是很相似,所以如果你有一個命令處理程序,你將不得不在內部使用一個大的switch語句,並可能調用單獨的方法。

另一個原因是,對於不同的命令,當這些命令啓用或不啓用時,您可以輕鬆地獲得不同的條件 - 例如,只有在播放器暫停時才啓用「恢復」。

+0

謝謝。聽起來很合理。 – Mohamed

0

除了Jogy寫的東西,我還會去單獨的命令。這樣你也可以使用內置的wpf media commands

這有一些潛在的優勢:

  • 你不需要寫每個命令執行ICommand一類,因爲它已經是裏面WPF

  • 每個媒體命令實際上是一個RoutedUICommand,這意味着它具有文本的可能性,您可以將它用作您的內容按鈕。

  • 您可以利用已經內置的輸入手勢和一些命令。