Вот простой способ ниже. Предполагается, что объект источника данных, который предоставляет свойство типа ICommand
с именем YourUndoCmd
, уже привязан к одному из свойств TextBox
DataContext
ancester.
<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>
В вашем коде позади должен быть метод, подобный приведенному ниже, для обработки команды отмены.
private void Undo_Executed(object sender, ExecutedRoutedEventArgs e)