1命令的組成程序員
命令源:就是誰發送的命令。性能
命令目標:就是這個命令發送給誰,誰接受的命令。blog
命令:就是命令的內容。接口
命令關聯:就是把命令和外圍的邏輯關聯起來,主要用來判斷命令是否能夠執行和執行完之後乾點啥。事件
建立一個命令就是一個實現了ICommand接口的類,若是命令與業務邏輯無關直接用RoutedCommand類就能夠。程序
若是命令不能執行那命令源的控件就是不可用的狀態。im
若是命令目標被指定了,無論命令目標有沒有獲取焦點都會接受到。若是沒有指定,那默認的就是得到焦點的控件。db
設置命令關聯須要CommandBinding.img
他們的關係是:命令源不斷的向命令目標詢問看能不能發送命令,而後命令目標就經過PreviewCanExecute和CanExecute(這兩個都是附加事件)發送這兩個事件沿着UI樹向上傳播被命令關聯捕獲,而後命令關聯把能不能di
發送告訴給命令。若是命令能夠發送那當命令目標接受到命令之後,命令目標就會發送PreViewExecute和Execute讓命令關聯捕獲,捕獲之後命令關聯去執行。
PreviewCanExecute和CanExecute這兩個事件不禁程序員控制,執行頻率高,因此性能會較低。
WPF本身也帶了不少經常使用的命令好比Save,New,Open,Copy等等。