2012-07-12 82 views
7

的上下文中,Microsoft的MVVM模式及其指令/事件處理方面認爲我既將命令綁定到控件(例如按鈕),又訂閱控件的Click事件。什麼是第一個 - Command或EventHandler?

是否有任何通用規則,首先發生什麼操作 - 處理與該命令關聯的代碼或與相應事件處理程序關聯的代碼?

+0

我想最大的問題是,爲什麼你會這樣做。使用命令的關鍵在於你通常會將它綁定到ViewModel中的ICommand,通過這樣做,VM不需要知道關於Button的任何信息。這是混合一些代碼和VM的情況嗎?如果您使用虛擬機,您如何綁定到按鈕事件? – stevethethread 2012-07-12 15:00:13

+1

@SteveSolomon嗯,我正試圖在運行時處理控件的動態創建。爲了尊重MVVM模式,我嘗試在VIEW中保留所有必需的代碼。所以我目前使用命令綁定來實現VIEW/VIEWMODEL和EventHandlers之間的'Inter-VIEW'操作之間的連接。 – 2012-07-12 15:04:51

+0

我不認爲它是特定的。我*認爲*第一個訂閱該活動將被首先提出。如果命令連接在XAML中,我預計會首先訂閱。但是,有不止一種方法來給貓上皮。 – 2012-07-12 16:05:55

回答

5

EventHandlers在綁定的ICommand之前觸發。

+2

這是正確的。在處理命令之前,我希望在進行一些特定於視圖的檢查之前偶爾會執行這兩個操作。如果檢查失敗,該事件可以取消該命令。 – Rachel 2012-07-12 15:49:26

+0

非常感謝。 – 2012-07-13 16:09:38

相關問題