如何使用ctrl + z(ApplicationCommand.Undo)键来实现我们自己的undo方法,而不是使用WPF中的default命令。基本上用我们自己的撤销方法替换默认命令。
例如:我想将ctrl + z命令绑定到我的方法: private void OnMenuItemUndo(object sender,RoutedEventArgs e) in xaml.cs文件。
答案 0 :(得分:1)
下面是一个简单的方法。它假定一个公开名为ICommand
的{{1}}类型属性的数据源对象已绑定到YourUndoCmd
的祖先TextBox
属性之一
DataContext
<TextBox IsUndoEnabled="false">
<TextBox.InputBindings>
<KeyBinding Modifiers="Ctrl" Key="Z" Command="{Binding YourUndoCmd}"/>
</TextBox.InputBindings>
</TextBox>
方式。
CommandBinding
在您的代码隐藏中,应该有一个类似下面的方法来处理撤消命令。
<Grid>
<Grid.CommandBindings>
<CommandBinding Executed="Undo_ExeCuted" Command="ApplicationCommands.Undo"/>
</Grid.CommandBindings>
<!--TextBox that will use your undo logic.-->
<TextBox IsUndoEnabled="False"/>
<!--TextBox that will use build-in undo logic.-->
<TextBox />
</Grid>