WPF Commanding Overview 的筆記

來源:互聯網
上載者:User

整個命令系統的流程如下:

CommandManager 負責監聽一些它關注的屬性的更改(例如:Focus、Click),當介面上有此類事件發生時,它會通知所有的 RoutedCommand 發生 CanExecutedChanged 事件。

 

這時,已經綁定了這些 RoutedComamnd 的 CommandSource (主要是各類控制項),會調用 RoutedCommand 的 CanExecute 方法來檢測是否可執行,並根據返回的結果來設定自己的狀態。如,當返回可執行時,作為 CommandSource 的按鈕則會設定自己的 IsEnabled 屬性為 true。此時,如果使用者“點擊”了這個 CommandSource 時,它會調用它所綁定的 RoutedCommand 的 Execute 方法。

 

CommandBinding 的主要設計目標是為了在一個較高的邏輯樹狀結構節點(例如 Window 節點)處,重用固定的命令執行邏輯。也就是說,當我在 Window上使用 CommandBinding 綁定了某個 RoutedCommand 的執行邏輯後,所有 Window 中的邏輯子結點如果執行了此 RoutedCommand,則會按照路由順序尋找此 RoutedCommand 所對應的 CommandBinding,找到後,則會執行其綁定的執行邏輯。

 

這也就是 RoutedCommand 的命名由來,也說明了,CommandBinding 只能用於綁定 RoutedCommand。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.