C# 路由命令
路由命令(routed co_and)的作用與事件相似,都是引起一些代碼開(kāi)始執(zhí)行。但事件只能直接與XAML中的單個(gè)元素和代碼中的一個(gè)處理程序綁定,路由命令則更復(fù)雜。
事件和命令的關(guān)鍵差異主要在使用過(guò)程中體現(xiàn)出來(lái)。如果一段代碼響應(yīng)的是只在應(yīng)用程序中的一個(gè)位置發(fā)生的用戶操作,則應(yīng)該使用事件。例如,當(dāng)用戶單擊某個(gè)窗口中的0K按鈕以便保存并關(guān)閉該窗口時(shí),就使用此類事件。當(dāng)代碼響應(yīng)多個(gè)位置的操作時(shí),則應(yīng)該使用命令。例如,很多時(shí)候,既可以在菜單中選擇Save命令,也可以使用某個(gè)工具欄按鈕來(lái)保存應(yīng)用程序的內(nèi)容。這樣的需求實(shí)際上也可以使用事件處理程序來(lái)完成,但這意味著我們需要在許多地方編寫(xiě)相同的代碼;而使用命令,則只需要編寫(xiě)一次即可。
在創(chuàng)建命令時(shí),還需要通過(guò)一些代碼來(lái)回答這樣一個(gè)問(wèn)題:“當(dāng)前是否允許用戶使用這段代碼?”也就是說(shuō),將一個(gè)命令與某個(gè)按鈕關(guān)聯(lián)起來(lái)時(shí),該按鈕可以詢問(wèn)這個(gè)命令能否執(zhí)行,并相應(yīng)地設(shè)置其狀態(tài)。
點(diǎn)擊加載更多評(píng)論>>