WPF and Silverlight学习笔记(十五):WPF命令(Commands)2010-12-17 博客园 龙腾于海WPF中的命令路由与事件路由是两个很让初学者头痛的概念,对于命令路由可 以理解为,系统(WPF)定义了一系列的操作,在应用程序中可以直接使用。例 如,定义一系列菜单,执行对窗体中文本框的复制、剪切、粘贴操作,简单地可 以这样做:
1: <Grid>
2: <Grid.RowDefinitions>
3: <RowDefinition Height="23" />
4: <RowDefinition />
5: </Grid.RowDefinitions>
6: <Menu Grid.Row="0" Grid.Column="0">
7: <MenuItem Header="Edit">
8: <MenuItem x:Name="menuCopy" Header="Copy"
9: Command="ApplicationCommands.Copy" />
10: <MenuItem x:Name="menuCut" Header="Cut"
11: Command="ApplicationCommands.Cut" />
12: <MenuItem x:Name="menuPaste" Header="Paste"
13: Command="ApplicationCommands.Paste" />
14: </MenuItem>
15: </Menu>
16: <TextBox Grid.Row="1" Grid.Column="0" x:Name="mainText"
17: TextWrapping="Wrap" AcceptsReturn="True" />
18: </Grid>
WPF 中的路由命令模型可以分为四个主要概念:命令、命令源、命令目标以 及命令绑定:命令是要执行的操作。在本例中命令为 ApplicationCommands.Copy、Cut、Paste命令源是调用命令的对象。 在 本例中命令源为三个MenuItem控件命令目标是在其上执行命令的对象。 在本例中命令目标是mainText这个TextBox文本框命令绑定是将命令逻辑 映射到命令的对象。 在本例中命令绑定到系统定义的对于文本框的“复制 ”、“剪切”、“粘贴”操作、其四者的关 系如下图所示: