Команды WPF маршрутизируются, и вы определили привязку CommandBinding для команды Ctrl + X в родительском элементе управления WindowsFormsHost. Поэтому, если вы хотите, чтобы он обрабатывался только в текстовом поле WPF, удалите привязку CommandBinding из таблицы и поместите ее туда:
<TextBox>
<TextBox.CommandBindings>
<CommandBinding Command="Cut"
Executed="CommandBinding_Executed"/>
</TextBox.CommandBindings>
</TextBox>
Когда команды маршрутизируются, команда Ctrl + X будет обрабатываться первым родителем, имеющим привязку для этой команды. Пока ваш фокус находится в области действия Grid и вы выполняете команду Ctrl + X, привязки команды Grid будут обрабатывать ее.
Вот отличная статья о перенаправленных событиях и командах в WPF: Понимание перенаправленных событий и команд в WPF
EDIT:
Если вы не хотите, чтобы команда обрабатывалась в TextBox, тогда вы должны определять CommandBindings только там, где Ctrl + X имеет для вас смысл. Я не думаю, что у вас есть другое решение. В любом случае, как правило, ApplicationCommands, такие как Cut, контекстуальны для определенной области, например RichTextBox или ListBox.
EDIT:
Нельзя блокировать WindowsFormsHost, вызывая перенаправленные команды. Но вы можете просто удалить хост из области действия CommandBindings:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Grid.CommandBindings>
<CommandBinding Command="Cut"
Executed="CommandBinding_Executed"/>
</Grid.CommandBindings>
<TextBox x:Name="WpfTextBox"
VerticalAlignment="Center"
Text="Hello there" />
</Grid>
<WindowsFormsHost Grid.Column="1"
VerticalAlignment="Center">
<wf:TextBox x:Name="WinFormsTextBox"
Text="Hello there" />
</WindowsFormsHost>
</Grid>
Конечно, если у вас есть гораздо больше объектов для разметки, это может быть немного сложно, но это будет работать. Просто удалите объекты, которые вы не хотите обрабатывать командами из области CommandBindings.