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文本框
命令绑定是将命令逻辑 映射到命令的对象。 在本例中命令绑定到系统定义的对于文本框的“复制 ”、“剪切”、“粘贴”操作、
其四者的关 系如下图所示: