欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# WPF編程之命令模型詳解

 更新時間:2024年04月09日 10:17:59   作者:SongYuLong的博客  
這篇文章主要為大家詳細介紹了C# WPF編程中命令模型的相關知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以跟隨小編一起學習一下

概述

使用路由事件可以響應廣泛的鼠標和鍵盤事件,這些事件是低級的元素。在實際應用程序中,功能被劃分成一些高級的任務。這些任務可通過各種不同的動作和用戶界面元素觸發(fā),包括主菜單、上下文菜單、鍵盤快捷鍵以及工具欄。

可在WPF中定義這些任務(也就是命令)并將控件連接到命令,從而不需要重復編寫事件處理代碼。更重要的是,當連接的命名不可用時,命令特性通過自動禁用控件來管理用戶界面的狀態(tài)。

將事件處理程序映射到事件:

將事件映射到命令:

WPF命令的缺點:

  • 命令跟蹤(例如,保留最近命令的歷史記錄);
  • “可撤銷的”命令;
  • 具有狀態(tài)并可處于不同“模式”的命令(例如,可被打開或關閉的命令);

WPF命令模型

WPF命令模型有許多可變的部分組成。他們都具有如下4個重要元素:

命令: 命令表示應用程序任務,并且跟蹤任務是否能被執(zhí)行。然然,命令實際上不包含執(zhí)行應用程序任務的代碼。

命令綁定: 每個命令綁定針對用戶界面的具體區(qū)域,將命令連接到相關的應用程序邏輯。

命令源: 命令源觸發(fā)命令。

命令目標: 命令目標是在其中執(zhí)行命令的元素。

ICommand接口

WPF命令模型的核心是System.Windows.Input.ICommand接口,該接口定義了命令的工作原理。該接口包含兩個方法和一個事件:

public interface ICommand
{
	void Execute(object parameter);
	bool CanExecute(object parameter);
	event EventHandler CanExecuteChanged;
}
  • Execute()方法將包含應用程序任務邏輯(例如,打印文檔)。
  • CanExecute()方法返回命令的狀態(tài),如果命令可用,返回true,否則返回false。
  • CanExecuteChanged():當命令狀態(tài)變化時引發(fā)該事件。

注:Execute()和CanExecute()方法都接受一個附加的參數(shù)對象。

RoutedCommand類

當創(chuàng)建自己的命令時,不會直接實現(xiàn)ICommand接口,而是使用System.Windows.Input.RoutedCommand類,該類自動實現(xiàn)了ICommand接口。

RoutedCommand類是WPF中唯一實現(xiàn)了ICommand接口的類。

RoutedUICommand類

在程序中處理的大部分命令不是RoutedCommand對象,而是RoutedUICommand類的實例,RoutedUICommand類繼承自RoutedCommand類。

RoutedUICommand類用于具有文本的命令,這些文本顯示在用戶界面中的某些地方(如,菜單項文本、工具欄按鈕的工具提示)。RoutedUICommand類只增加了Text屬性,該屬性為命令顯示的文本。

為命令定義命令文本的優(yōu)點是可在某個位置執(zhí)行本地化。

到此這篇關于C# WPF編程之命令模型詳解的文章就介紹到這了,更多相關C# WPF命令模型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論